Cod sursa(job #848679)

Utilizator Stefex09Stefan Teodorescu Stefex09 Data 5 ianuarie 2013 18:13:28
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;

ifstream in ("buline.in");
ofstream out ("buline.out");

int V[400010];

int main ()
{
	int N, i, Sum = 0, Best, idx = 1, L, St, Dr;
	bool bila;
	
	in >> N;
	
	for (i = 1; i <= N; i ++){
		in >> V[i] >> bila;
		
		if (!bila)
			V[i] = ~V[i] + 1;
		
		V[N + i] = V[i];
	}
	Best = V[1];
	idx = 1;
	St = 1;
	Dr = 1;
	
	for (i = 1; i <= (N << 1); i ++)
		cout << V[i] << " ";
	
	for (i = 1; i <= (N << 1); i ++){
		if (i > N && i - N == idx)
			break;
		
		if (Sum + V[i] > V[i])
			Sum += V[i];
		else{
			if (Sum > Best)
				Best = Sum, St = idx, Dr = i;
			Sum = V[i];
			idx = i;
		}
		cout << Sum << " ";
		if (Sum > Best)
			Best = Sum, St = idx, Dr = i;
	}
	
	out << Best << " " << St << " " << Dr - St + 1;
	
	return 0;
}