Pagini recente » Cod sursa (job #1312293) | Cod sursa (job #551983) | Cod sursa (job #1157798) | Cod sursa (job #547848) | Cod sursa (job #3306909)
#include <fstream>
using namespace std;
ifstream cin("buline.in");
ofstream cout("buline.out");
long long int n, x, c, v[200005], smax, sum, st, a,b;
int main()
{
cin>>n;
for(int i=1; i<=n;i++){
cin>>x>>c;
if(c==0) v[i]=-x;
else v[i]=x;
}
smax=-1e18, st=1;
for(int i=1; i<=n;i++){
sum+=v[i];
if(sum>smax){
smax=sum;
a=st; b=i;
}
if(sum<0){
st=i+1;
sum=0;
}
}
if(st!=n+1){
int k=1;
while(sum>=0 && k<st){
sum+=v[k];
if(sum>smax){
smax=sum;
a=st; b=k;
}
k++;
}
}
int l=0;
if(a<b) l=b-a+1;
else l=n-a+1+b;
cout<<smax<<' '<<a<<' '<<l;
return 0;
}