Pagini recente » Cod sursa (job #2103505) | Cod sursa (job #2332726) | Cod sursa (job #211952) | Cod sursa (job #2494438) | Cod sursa (job #1624860)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("sortare.in");
ofstream fout("sortare.out");
int x, l, i, j, n, v[400005], pmax, umax, p;
long long maxim, s;
int main()
{
fin>>n;
for(i=1;i<=n;i++){
fin>>x>>p;
if(p==1)
v[i]=x;
else
v[i]=-x;
v[n+i]=v[i];
}
s=v[1];maxim=s;pmax=1;umax=1;p=1;l=1;
for(i=2;i<=2*n;i++){
if(v[i]+s>=v[i]){
if(l+1<=n)
{s+=v[i];l++;}
else{
i++;
l=1;
s=v[i];
}
}
else{
s=v[i];
p=i;
l=1;
}
if(s>maxim){
maxim=s;
umax=i;
pmax=p;
}
}
fout<<maxim<< " "<<pmax<< " "<<umax-pmax+1;
return 0;
}