Pagini recente » Cod sursa (job #803478) | Cod sursa (job #1087730) | Cod sursa (job #1156331) | Cod sursa (job #1442335) | Cod sursa (job #1518431)
#include <fstream>
using namespace std;
int sumainitiala, minim, maxim, n, x, y, s1, s2, nr, nr1, nrmax, nr1max, p, p1, pmax, p1max, i;
int main()
{
ifstream fin("buline.in");
ofstream fout("buline.out");
fin>>n;
p=1;
p1=1;
maxim=-2000000000;
minim=2000000000;
if(n==1){
fin>>x>>y;
if(y==0)
x=0-x;
fout<<x<<" "<<1<<" "<<1;
}
for(i=1;i<=n;i++){
fin>>x>>y;
if(y==0)
x=0-x;
sumainitiala+=x;
if(s1+x>=s1){
s1+=x;
nr++;
}
else{
s1=x;
p=i;
nr=1;
}
if(s1>maxim){
maxim=s1;
pmax=p;
nrmax=nr;
}
if(s2+x<=s1){
s2+=x;
nr1++;
p1++;
}
else{
s2=x;
p1=i;
nr1=1;
}
if(s2<minim){
minim=s2;
p1max=p1+1;
if(p1max+1>n)
p1max=1;
nr1max=n-nr1;
}
}
if(pmax==p1max){
if(maxim==sumainitiala-minim){
if(nrmax<=nr1max)
fout<<maxim<<" "<<pmax<<" "<<nrmax;
else
fout<<sumainitiala-minim<<" "<<p1max<<" "<<nr1max;
}
else
if(maxim>=sumainitiala-minim)
fout<<maxim<<" "<<pmax<<" "<<nrmax;
else
fout<<sumainitiala-minim<<" "<<p1max<<" "<<nr1max;
}
else{
if(maxim>=sumainitiala-minim)
fout<<maxim<<" "<<pmax<<" "<<nrmax;
else
fout<<sumainitiala-minim<<" "<<p1max<<" "<<nr1max;
}
return 0;
}