Pagini recente » Cod sursa (job #106352) | Cod sursa (job #2196813) | Cod sursa (job #79647) | Cod sursa (job #859287) | Cod sursa (job #2122770)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
int main()
{
int n,x,c,v[200000],i,smax=INT_MIN,sopt=0,s=0,li=1,cont=0,j,p;
ifstream in("buline.in");
ofstream out("buline.out");
in>>n;
for(i=1;i<=n;i++)
{
in>>x>>c;
if(c==0)
v[i]=-x,v[n+i]=-x;
else
v[i]=x,v[n+i]=x;
}
for(j=1;j<=n;j++)
{
sopt=0;
s=0;
p=j+n-1;
cont=0;
for(i=j;i<=p;i++)
{
s+=v[i];
if(s>sopt)
sopt=s,cont++;
else
if(s+v[i+1]>sopt)
cont++;
}
if(sopt>smax)
smax=sopt,li=j;
}
if(sopt>smax)
smax=sopt;
out<<smax<<" "<<li<<" "<<cont;
in.close();
out.close();
return 0;
}