Pagini recente » Cod sursa (job #43894) | Cod sursa (job #2088215) | Cod sursa (job #1762254) | Cod sursa (job #773898) | Cod sursa (job #425348)
Cod sursa(job #425348)
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-1;
int s=v[1],start,stop,smax=v[1],index=1;
for(int i=2;i<=n;++i){
if(s<0)
s=v[i], index=i;
else{
s+=v[i];
while(i-index+1>m)
s-=v[index++];
if(s<0)
s = v[i], index=i;
}
if(s>smax)
smax=s, start=index, stop=i;
}
fout<<smax<<" "<<start<<" "<<stop-start+1<<endl;
return 0;
}