Pagini recente » Cod sursa (job #2220470) | Cod sursa (job #1275037) | Cod sursa (job #944082) | Cod sursa (job #2684624) | Cod sursa (job #2733238)
#include <fstream>
using namespace std;
ifstream in("buline.in");
ofstream out("buline.out");
const int nmax=2e5+5;
int v[2*nmax];
int main()
{
int n,i,semn,st,drmax,stmax,s,smax,l;
in>>n;
for(i=1; i<=n; i++)
{
in>>v[i]>>semn;
if(!semn)
v[i]*=-1;
v[i+n]=v[i];
}
s=smax=v[1];
st=stmax=drmax=1;
l=i-st+1;
for(i=1; i<=2*n; i++)
{
if(s+v[i]<v[i])
{
s=v[i];
st=i;
}
else
s+=v[i];
if(s>smax)
{
smax=s;
stmax=st;
drmax=i;
}
l=i-st+1;
if(l==n)
{
s-=v[st];
st++;
}
}
if(stmax>n)
stmax-=n;
out<<smax<<" "<<stmax<<" "<<drmax-stmax+1;
return 0;
}