Pagini recente » Cod sursa (job #722686) | Cod sursa (job #2758674) | Cod sursa (job #1122416) | Cod sursa (job #2891411) | Cod sursa (job #2132461)
#include <fstream>
#include <climits>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int x,an,n,mini=0,maxim=INT_MIN,i,start,idx,sf,s,r,k,tt,ok1;
int v[400001];
int main()
{
f>>n;
for (i=1;i<=n;i++)
{
f>>x>>an;
if (an==0)
{
v[i]=-x;
v[n+i]=-x;
}
else
{
v[i]=x;
v[n+i]=x;
}
}
for (i=1;i<=2*n;i++)
{
v[i]=v[i]+v[i-1];
if (maxim<v[i]-mini&&i-idx+1<=n)
{
maxim=v[i]-mini;
start=idx+1;
sf=i;
}
if (mini>v[i])
{
idx=i;
mini=v[i];
}
while (i-idx+1>n)
{
idx++;
}
}
g<<maxim<<" "<<start<<" "<<sf-start+1;
return 0;
}