Pagini recente » Cod sursa (job #1685960) | Cod sursa (job #1576025) | Cod sursa (job #430740) | Borderou de evaluare (job #103675) | Cod sursa (job #503664)
Cod sursa(job #503664)
#include<fstream>
int a[400001];
using namespace std;
ifstream in("buline.in");
ofstream out("buline.out");
int main()
{
int s,p,x,l,ml=0,mp=1,max=-10001,n,i;
in>>n;
for(i=1;i<=n;++i)
{
in>>a[i];
in>>x;
if(x==0)
a[i]=-a[i];
}
for(i=n+1;i<=2*n;++i)
a[i]=a[i-n];
p=1;
l=0;
s=0;
for(i=1;i<=2*n;++i)
{
if(s<0)
{
s=0;
p=i%n;
l=0;
}
if(l==n)
{
s=s-a[p];
++p;
--l;
}
s=s+a[i];
++l;
if(s>max)
{
max=s;
mp=p;
ml=l;
}
}
out<<max<<" "<<mp<<" "<<ml;
return 0;
}