Pagini recente » Cod sursa (job #1737052) | Cod sursa (job #1843531) | Cod sursa (job #1383624) | Cod sursa (job #175375) | Cod sursa (job #1461674)
#include<fstream>
using namespace std;
ifstream in("buline.in");
ofstream out("buline.out");
int x[400001];
int main(){
int n,sc,ic,im,sfm,smax;
in>>n;
for(int i=1; i<=n; i++){
in>>x[i];
int k;
in>>k;
if(k==0) x[i]*=-1;
}
for(int i=n+1; i<=((2*n)-1); i++)
x[i]=x[i-n];
sc=smax=x[1];
ic=im=sfm=1;
for(int i=2; i<=2*n-1; i++){
if(i<=n){
if(sc+x[i]<x[i]){
sc=x[i];
ic=i;
}
else {
sc+=x[i];
}
if(sc>smax){
smax=sc;
im=ic;
sfm=i;
}
}
else{
if(sc+x[i]>x[i]){
sc+=x[i];
}
else i=2*n;
if(sc>smax){
smax=sc;
im=ic;
sfm=i;
}
}
}
out<<smax<<" "<<im<<" "<<sfm-im+1;
in.close();
out.close();
return 0;
}