Pagini recente » Cod sursa (job #3330873) | Cod sursa (job #3329613) | Borderou de evaluare (job #3310621) | Monitorul de evaluare | Cod sursa (job #3340700)
#include <iostream>
#include <fstream>
#include <climits>
#include <algorithm>
#include <bitset>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int main()
{
int n;
fin>>n;
long long b[n*2];
for(int i=1;i<=n;i++)
{
fin>>b[i];
int semn;
fin>>semn;
if(semn==0)
{
b[i]=b[i]*(-1);
}
}
for(int i=n+1;i<=n*2-1;i++)
{
b[i]=b[i-n];
}
long long s=b[1];
int st=1;
long long maxx=s,p=1,l=1;
for(int i=2;i<=n*2-1;i++)
{
if(s + b[i]>=b[i])
{
s=s+b[i];
}
else
{
s=b[i];
st=i;
}
if(i==st+n)
{
s=s-b[i];
st++;
}
if(st>n)
{
break;
}
if(s>maxx)
{
maxx=s;
p=st;
l=i-st+1;
}
}
fout<<maxx<<" "<<p<<" "<<l;
return 0;
}