Pagini recente » Cod sursa (job #2090531) | Cod sursa (job #2695643) | Cod sursa (job #2820397) | Cod sursa (job #897508) | Cod sursa (job #515867)
Cod sursa(job #515867)
#include<iostream>
#include<fstream>
using namespace std;
int n,sum,x[200001],sc,i,u,y,u2,y2,smax=-20000,smin=20000,inceput,d,sss,ddd;
ifstream aa("buline.in");
ofstream ss("buline.out");
int main () {
aa >> n;
for (i=1;i<=n;++i) {
aa >> x[i] >> d;
if (d==0) x[i]=-x[i];
sum+=x[i];
}
inceput=1;
for (i=1;i<=n;++i) {
sc+=x[i];
if (sc>smax) {
smax=sc;
u=inceput;
y=i-u+1;
}
if (sc<0) {
inceput=i+1;
sc=0;
}
}
sc=0;
inceput=1;
for (i=1;i<=n;++i) {
sc+=x[i];
if (sc<smin) {
smin=sc;
u2=inceput;
y2=i-u2+1;
}
if (sc>0) {
inceput=i+1;
sc=0;
}
}
if (sum-smin>smax) {
if (u2-1<1) u2=n+1;
if (y2+1>n) y2=0;
ss << sum-smin << " " << y2+u2 << " " << n-y2;
}
else ss << smax << " " << u << " " << y;
return 0;
}