Pagini recente » Cod sursa (job #111076) | Cod sursa (job #1034335) | Cod sursa (job #1780896) | Cod sursa (job #1546489) | Cod sursa (job #2069667)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
long int n, i, a, b, poz, P, L, j, v[400000], Max[400000], s1[400000];
long long int Suma=0, S_max=LONG_LONG_MIN;
int main()
{
f>>n;
for (i=0; i<n; i++) {
f>>a>>b;
if (b) v[i]=a;
else v[i]=-a;
Suma+=v[i];
s1[i]=Suma;
}
Max[0]=v[0];
for (i=1; i<n; i++) {
if (s1[i]>Max[i-1]) Max[i]=s1[i];
else Max[i]=Max[i-1];
}
S_max=s1[n-1];
for (i=1; i<n; i++) {
Suma=s1[n-1]-s1[i-1]+Max[i-1];
if (Suma>S_max) S_max=Suma;
}
g<<S_max;
f.close();
g.close();
return 0;
}