Pagini recente » Cod sursa (job #1576688) | Cod sursa (job #11258) | Cod sursa (job #2720440) | Cod sursa (job #2489530) | Cod sursa (job #2072813)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int main()
{
long int S[100], v[100], x, y, n, S_max, Suma, P, poz, i, j, L;
f>>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;
}