Pagini recente » Profil Neredesin | Monitorul de evaluare | Profil robertkarol | Cod sursa (job #2012802) | Cod sursa (job #1076979)
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
#define MAXN 400005
int N, v[MAXN];
int main()
{
int i, a, b;
int max, pmax = 1, inceput = 1, aux_inceput = 1;
f >> N;
for (i = 1; i <= N; ++i)
{
f >> a >> b;
if (b) v[i] = a;
else v[i] = a*(-1);
}
for (i = 1; i<N; ++i)
v[N + i] = v[i];
max = v[1];
for (i = 2; i <= 2 * N && inceput < N; ++i) {
v[i] += (v[i - 1] > 0) ? v[i - 1] : 0;
if (v[i] > max)
pmax = i, max = v[i], inceput = aux_inceput;
if (v[i] < 0)
aux_inceput = i;
}
g << max << ' ' << inceput + 1 << ' ' << pmax - inceput << '\n';
return 0;
}