Cod sursa(job #848666)

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

using namespace std;

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

int V[400010];
bool Viz[400010];

int main ()
{
	int N, i, Sum = 0, Best, idx, 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];
	St = 1;
	Dr = 1;
	
	for (i = 1; i <= (N << 1); i ++)
		cout << V[i] << " ";
	
	for (i = 1; i <= (N << 1); i ++){
		if (Viz[i])
			break;
		
		if (Sum + V[i] > V[i]){
			Viz[i] = 1;
			Viz[N + i] = 1;
			Sum += V[i];
		}
		else{
			memset (Viz, 0, sizeof (Viz));
			Sum = V[i];
			Viz[i] = 1;
			Viz[N + i] = 1;
			idx = i;
		}
		//cout << Sum << " ";
		if (Sum > Best)
			Best = Sum, St = idx, Dr = i;
	}
	
	out << Best << " " << St << " " << Dr - St + 1;
	
	return 0;
}