Pagini recente » Cod sursa (job #1298947) | Cod sursa (job #2154083) | Cod sursa (job #39839) | Cod sursa (job #2488930) | Cod sursa (job #879424)
Cod sursa(job #879424)
#include<fstream>
using namespace std;
int n, i, x, v[400002], s[400002], maxim, pmaxim, lmaxim, p, l, q;
int main(){
ifstream f("buline.in");
ofstream g("buline.out");
f>>n;
for(i=1; i<=n; i++){
f>>v[i]>>x;
if(x==0)
v[i]=0-v[i];
v[n+i]=v[i];
}
s[1]=v[1];
maxim=v[1];
pmaxim=1;
lmaxim=1;
for(i=2; i<=n+n; i++){
if(s[i-1]<=0){
s[i]=v[i];
p=i;
l=1;
}
else{
//if(v[i]+s[i-1]<=0){}
//if(v[i]>v[i]+s[i-1]){
//s[i]=v[i];
//p=i;
// l=1;
// }
//else{
s[i]=v[i]+s[i-1];
l++;
if(l>n){
l=1;
s[i]=v[i];
p=i;
// }
}
}
if(s[i]>maxim){
maxim=s[i];
pmaxim=p;
lmaxim=l;
}
else{
if(s[i]==maxim){
if(p<pmaxim){
pmaxim=p;
lmaxim=l;
}
if(p==pmaxim){
if(l<lmaxim)
lmaxim=l;
}
}
}
}
//}
g<<maxim<<" "<<pmaxim<<" "<<lmaxim;
return 0;
}