Pagini recente » Cod sursa (job #2233511) | Cod sursa (job #2161451) | Cod sursa (job #4859) | Cod sursa (job #822139) | Cod sursa (job #2687311)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int n, v[400005];
int suma, st, a, b;
int maxx, stmax, len;
int main (){
fin>>n;
for(int i=1; i<=n; i++){
fin>>a>>b;
if(b == 0)
v[i]=-a;
else
v[i]=a;
}
for(int i=n+1; i<=2*n; i++)
v[i]=v[i-n];
suma=v[1];
st=1;
maxx=suma;
stmax=1;
len=1;
for(int i=2; i<=2*n; i++){
if(suma+v[i] < v[i]){
suma=v[i];
st=i;
}else if(st+n-1 >= i)
suma+=v[i];
else{
suma=v[i];
st=i;
}
if(suma > maxx){
maxx=suma;
stmax=st;
len=i-st+1;
}
}
fout<<maxx<<" "<<stmax<<" "<<len;
return 0;
}