Pagini recente » Cod sursa (job #2922095) | Cod sursa (job #534096) | Cod sursa (job #2290641) | Cod sursa (job #1037218) | Cod sursa (job #2118317)
#include <fstream>
using namespace std;
int n, i, st, dr, stm, drm, cul, v[200004], nr, S, maxim, S1, suma, minim, p;
ifstream fin("buline.in");
ofstream fout("buline.out");
int main(){
fin>>n;
for(i=1;i<=n;i++){
fin>>nr>>cul;
if(cul == 0)
v[i] = nr*(-1);
else
v[i] = nr;
S+=v[i];
}
maxim = suma = v[1];
for(i=2;i<=n;i++){
if(suma >= 0)
suma += v[i];
else
suma = v[i], p = i;
if(suma > maxim){
maxim = suma;
st = p;
dr = i;
}
}
minim = suma = v[1];
for(i=2;i<=n;i++){
if(suma < 0)
suma += v[i];
else
suma = v[i], p = i;
if(minim > suma){
minim = suma;
stm = p;
drm = i;
}
}
S1 = S - minim;
if(S1 > maxim)
fout<<S1<<" "<<drm+1<<" "<<n-(drm - stm + 1);
else
fout<<maxim<<" "<<st<<" "<<dr-st+1;
return 0;
}