Pagini recente » Cod sursa (job #218065) | Cod sursa (job #2289881) | Cod sursa (job #928797) | Cod sursa (job #2262795) | Cod sursa (job #393780)
Cod sursa(job #393780)
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=-(1<<30),index=1;
for(int i=2;i<=n;++i){
if(s<0)
s=v[i], index=i;
else{
s+=v[i];
if(i-index>=m)
if(v[index]<0)
while(v[index]<=0 && index<i)
s-=v[index++];
else
s-=v[index++];
}
if(s>smax)
smax=s, start=index, stop=i;
}
fout<<smax<<" "<<start<<" "<<stop-start+1<<endl;
return 0;
}