Pagini recente » Cod sursa (job #2893855) | Cod sursa (job #3273755) | Cod sursa (job #2036144) | Cod sursa (job #1057219) | Cod sursa (job #2069671)
#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]=v[i+n]=a;
else v[i]=v[i+n]=-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;
P=i; L=5;
}
g<<S_max<<' '<<P<<' '<<L;
f.close();
g.close();
return 0;
}