Pagini recente » Cod sursa (job #3236804) | Cod sursa (job #923468) | Cod sursa (job #1426890) | Cod sursa (job #24558) | Cod sursa (job #1524668)
#include <fstream>
using namespace std;
ifstream in("buline.in");
ofstream out("buline.out");
int n,x,bilet[400010];
bool culoare;
int main()
{
int i,min,max,inceput,sfarsit,nr=0;
in>>n;
for(i=1;i<=n;i++)
{
in>>x>>culoare;
if(culoare==0) x=-x;
bilet[i]=bilet[i+n]=x;
}
max=-int(2e9);
min=0;
for(i=1;i<n+n;i++)
{
bilet[i]+=bilet[i-1];
if(bilet[i]-min > max)
{
max=bilet[i]-min;
sfarsit=i;
inceput=nr+1;
}
if(bilet[i] < min)
{
min=bilet[i];
nr=i;
}
}
sfarsit=sfarsit-inceput+1;
if(inceput>n) inceput-=n;
out<<max<<" "<<inceput<<" "<<sfarsit;
/*int i,max,min,sum=0,inceput,sfarsit,nr=0;
in>>n;
min=0;
max=-int(2e9);
sum=0;
for(i=1;i<=n;i++)
{
sum+=;
if(sum-min > max)
{
max=sum - min;
sfarsit=i;
inceput=nr+1;
}
if(sum < min)
{
min=sum;
nr=i;
}
}*/
in.close();
out.close();
return 0;
}