Pagini recente » Cod sursa (job #2392953) | Cod sursa (job #691018) | Cod sursa (job #1453259) | Cod sursa (job #1533861) | Cod sursa (job #878766)
Cod sursa(job #878766)
#include<fstream>
using namespace std;
int n, i, x, v[400002], s[400002], maxim, pmaxim, lmaxim, p, l;
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[i]=v[1];
maxim=v[1];
pmaxim=1;
lmaxim=1;
for(i=2; i<=2*n; i++){
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;
if(p==pmaxim){
if(l<lmaxim)
lmaxim=l;
}
}
}
}
g<<maxim<<" "<<pmaxim<<" "<<lmaxim;
return 0;
}