Pagini recente » Cod sursa (job #3225902) | Cod sursa (job #2356955) | Cod sursa (job #2489510) | Cod sursa (job #1707213) | Cod sursa (job #425387)
Cod sursa(job #425387)
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];
while(i-index+1>m)
s -= v[ index++ ];
while(v[index]<0)
s -= v[index++];
}
if(s > smax)
smax = s, start = index, stop = i;
}
fout<<smax<<" "<<start<<" "<<stop - start + 1<<endl;
return 0;
}