Pagini recente » Cod sursa (job #1573018) | Cod sursa (job #12573) | Cod sursa (job #2292645) | Cod sursa (job #336413) | Cod sursa (job #1409178)
#include <cstdio>
#include <algorithm>
using namespace std;
int v[400010];
int main() {
int n,x,y;
freopen("buline.in","r",stdin);
freopen("buline.out","w",stdout);
scanf("%d",&n);
for(int i=1; i<=n; i++) {
scanf("%d%d",&x,&y);
v[i]=x;
if(!y)
v[i]*=-1;
v[n+i]=v[i];
}
///v[n+1]=-10010;
int sum=0,st,dr,maxim=v[1],len=1,start=1;
st=1;
sum=0;
for(int i=2;i<=2*n-1;i++){
if(sum+v[i]>v[i])
sum+=v[i];
else{
sum=v[i];
st=i;
}
if(sum>maxim) {
maxim=sum;
if(st%n==0)
start=n;
else start=st;
len=i-st+1;
}
}
printf("%d %d %d\n",maxim,start,len);
return 0;
}