Cod sursa(job #1077005)

Utilizator GaborGabrielFMI - GabrielG GaborGabriel Data 10 ianuarie 2014 20:02:53
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#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 = 0, aux_inceput = 0;

	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) {
		if (i > N && inceput <= i%N) break;
		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;
}