Pagini recente » Borderou de evaluare (job #2359039) | Borderou de evaluare (job #1103912) | Cod sursa (job #1933403) | Cod sursa (job #75780) | Cod sursa (job #3344698)
#include <bits/stdc++.h>
using namespace std;
int n,s,sm,st,stm,drm,nsm;
vector<int>V;
int main()
{
ifstream in("buline.in");
ofstream out("buline.out");
in>>n;
V.push_back(-1);
for(int i=1,x,y;i<=n;i++)
{
in>>x>>y;
if(y==0)x=x*(-1);
V.push_back(x);
if(s<0){
s=0;
st=i;
}
s+=x;
if(s>sm){sm=s;stm=st,drm=i;}
}
if(drm!=n)
{
out<<sm<<" "<<stm<<" "<<drm-stm+1;
}
else{
//cout<<sm<<" P\n";
s=0,st=0;
int nsm=0;
for(int i=1;i<stm;i++)
{
s+=V[i];
if(s>nsm)nsm=s,st=i;
}
if(nsm<=0)out<<sm<<" "<<stm<<" "<<drm-stm+1;
else out<<sm+nsm<<" "<<stm<<" "<<drm+st-stm+1;
}
return 0;
}