Pagini recente » Cod sursa (job #134853) | Cod sursa (job #3202037) | Cod sursa (job #363433) | Cod sursa (job #1190180) | Cod sursa (job #1520718)
#include <fstream>
using namespace std;
int n,i,v[200001],s,minim,p,u,x,y,pmaxim,umaxim,s2,ap,ap2,maxim;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int main (){
fin>>n;
for (i=1;i<=n;i++){
fin>>x>>y;
if (y == 0)
v[i] = -x;
else
v[i] = x;
s2+=v[i];
}
maxim = -2000000000;
s = v[1];
p = 1;
maxim = v[1];
pmaxim = 1;
umaxim = 1;
for (i=2;i<=n;i++){
if (s + v[i] >= v[i]){
s+=v[i];
}
else{
s=v[i];
p = i;
}
if (s > maxim) {
maxim = s;
pmaxim = p;
umaxim = i;
}
}
s = v[1];
minim = v[1];
p = 1;
for (i=2;i<n;i++) {
if (s + v[i] < v[i]) {
s += v[i];
} else {
s = v[i];
p = i;
}
if (s2 - s > maxim) {
maxim = s2 - s;
pmaxim = i+1;
umaxim = p-1;
} else
if (s2 - s == maxim && pmaxim > i+1) {
pmaxim = i+1;
umaxim = p-1;
}
}
fout<<maxim<<" "<<pmaxim<<" "<< n- (umaxim-pmaxim)*-1 + 1;
return 0;
}