Pagini recente » Cod sursa (job #1289161) | Cod sursa (job #1035347) | Cod sursa (job #2939487) | Cod sursa (job #3349973) | Cod sursa (job #3308765)
#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;
}
}
int smin=0, c, d, suma=0;
sum=0; st=1;
for(int i=1; i<=n;i++){
sum+=v[i]; suma+=v[i];
if(sum<smin){
smin=sum;
c=st; d=i;
}
if(sum>0){
sum=0;
st=i+1;
}
}
suma-=smin;
if(suma>smax)
cout<<suma<<' '<<d+1<<' '<<n-(d-c+1);
else cout<<smax<<' '<<a<<' '<<b-a+1;
return 0;
}