Pagini recente » Cod sursa (job #1431770) | Cod sursa (job #813913) | Cod sursa (job #719630) | Cod sursa (job #1015001) | Cod sursa (job #800198)
Cod sursa(job #800198)
#include<fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int i,n,maxim,umaxim,pi,v[400001],s[400001],u[200001],p,t;
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>v[i]>>u[i];
for(i=1;i<=n;i++)
if(u[i]==0)
v[i]=-v[i];
s[1]=v[1];
maxim=s[1];
umaxim=pi=1;
for(i=2;i<=n;i++)
{
if(s[i-1]+v[i]>=v[i])
s[i]=s[i-1]+v[i];
else {
s[i]=v[i];
pi = i;
}
}p=1;
for(i=n+1;i<=n+pi-1;i++)
{
v[i]=v[p];
p++;}
for(i=n+1;i<=n+pi-1;i++)
{
if(s[i-1]+v[i]>=v[i])
s[i]=s[i-1]+v[i];
else {
s[i]=v[i];
t=i;
}
}
for(i=1;i<=n+pi-1;i++)
{
if(s[i]>maxim){
maxim=s[i];
umaxim=i;
}
}
if(t==0);
t=pi;
g<<maxim<<" "<<t<<" "<<umaxim-t+1;;
return 0;
}