Pagini recente » Cod sursa (job #3338442) | Cod sursa (job #3324842) | Cod sursa (job #1124794) | Cod sursa (job #3339325) | Cod sursa (job #3346559)
#include <fstream>
#define NMAX 200005
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int N,v[2*NMAX];
void citire()
{
fin>>N;
int x,c;
for(int i=1; i<=N; i++)
{
fin>>x>>c;
if(!c)
{
v[i]=-x;
}
else
{
v[i]=x;
}
v[i+N]=v[i];
}
}
int main()
{
citire();
long long s,Smax;
s=Smax=v[1];
int start,l,P,L;
start=l=P=L=1;
for(int i=2; i<=2*N; i++)
{
if(s+v[i]>v[i])
{
s+=v[i];
l++;
if(l>N)
{
s-=v[start];
start++;
l--;
}
}
else
{
s=v[i];
start=i;
l=1;
}
if(s>Smax)
{
Smax=s;
P=start;
L=l;
}
}
fout<< Smax << " " << P << " " << L << "\n";
return 0;
}