Pagini recente » Cod sursa (job #881231) | Cod sursa (job #2575469) | Cod sursa (job #1573732) | Cod sursa (job #1878666) | Cod sursa (job #425425)
Cod sursa(job #425425)
using namespace std;
#include <fstream>
int v[400004],n,m;
int main(){
ifstream fin("buline.in"); ofstream fout("buline.out");
fin>>n;
int semn;
for(int i=1;i<=n; ++i ){
fin>>v[i]>>semn;
if(semn==0)
v[i]=-v[i];
}
for(int i=1;i<=n;++i)
v[i+n]=v[i];
m=n, n=2*m;
int s=v[1],start=1,stop=1,smax=v[1],index=1;
for(int i=2;i<=n;++i){
if(s<0)
s=v[i], index=i;
else{
s += v[i];
if(i-index+1>m){
s -= v[ index++ ];
while(v[index]<0)
index++;
s=v[i=index];
}
}
if(s > smax)
smax = s, start = index, stop = i;
}
fout<<smax<<" "<<start<<" "<<stop - start + 1<<endl;
return 0;
}