Pagini recente » Cod sursa (job #1432294) | Cod sursa (job #271651) | Cod sursa (job #1247361) | Cod sursa (job #3324886) | Cod sursa (job #1657957)
#include <iostream>
#include<fstream>
using namespace std;
int v[400005],i,a,semn,j,start,length,sum,bestsum,n;
int main()
{
ifstream f("buline.in");
ofstream g("buline.out");
f>>n;
for(i=1;i<=n;i++)
{
f>>a>>semn;
if(semn==1)v[i]=a;
else v[i]=a*(-1);
v[n+i]=v[i];
}
for(i=1;i<=2*n;i++)
{
if(sum<0) {sum=v[i];j=i;}
else sum+=v[i];
if(i-j>=n) {sum-=v[j];j++;}
while(v[j]<=0 &&j<i)
{
sum-=v[j];
j++;
}
if(sum>bestsum)
{
bestsum=sum;
if(j<=n)start=j;
else start=j-n;
length=i-j;
}
}
g<<bestsum<<' '<<start<<' '<<length+1;
return 0;
}