Pagini recente » Cod sursa (job #140425) | Cod sursa (job #1918113) | Cod sursa (job #779033) | Cod sursa (job #963815) | Cod sursa (job #2072822)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int main()
{
long long int x, y, n, S_max, Suma, P, poz, i, j, L;
f>>n;
long long int S[2*n], v[2*n];
for (i=0;i<n;i++) { f>>x>>y;
if (!y) { v[i]=-x; v[i+n]=-x; }
else { v[i]=x; v[i+n]=x; }
}
S[0]=v[0];
for (S_max=Suma=v[0], x=P=poz=0, i=L=1; i<2*n; i++) {
if (Suma<0 || x==n) { Suma=v[i]; poz=i; x=1; }
else { Suma+=v[i]; x++;
if (S_max<Suma) { S_max=Suma; P=poz; L=i-poz+1; }
}
S[i]=Suma;
}
//S_max=S[P]; L=1; j=P;
//for (i=P+1;i<P+n;i++)
//{
//if (S[i]>S[i-1]) { for (x=j+1;x<=i;x++) S_max+=S[x];
//L+=i-j; j=i; }
//}
g<<S_max<<' '<<(P+1)<<' '<<L;
return 0;
}