Pagini recente » Cod sursa (job #1974672) | Cod sursa (job #679687) | Borderou de evaluare (job #2296929) | Cod sursa (job #2916000) | Cod sursa (job #1052622)
#include<iostream>
#include<fstream>
using namespace std;
ifstream read("buline.in");
ofstream write("buline.out");
const int minsum=INT_MIN;
int bilete[200000],sum=0,bestsum=minsum;
int main()
{
unsigned N,buline,culoare,i,index=0,begin,end;
read>>N;
for(i=1;i<=2*N;i++)
if(i<=N)
{
read>>buline>>culoare; if(culoare==0) bilete[i]=-buline; else bilete[i]=buline;
}
else
bilete[i]=bilete[i-N];
for(i=1;i<=2*N-1;i++)
{
if(sum<0)
{
sum=bilete[i]; index=i;
}
else
sum=sum+bilete[i];
if(bestsum<sum)
{
bestsum=sum; begin=index; end=i;
}
}
write<<bestsum<<" "<<begin<<" "<<end-begin+1;
read.close();
write.close();
return 1;
}