Cod sursa(job #515867)

Utilizator valentin.harsanValentin Harsan valentin.harsan Data 22 decembrie 2010 16:47:29
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<iostream>
#include<fstream>
using namespace std;
int n,sum,x[200001],sc,i,u,y,u2,y2,smax=-20000,smin=20000,inceput,d,sss,ddd;
ifstream aa("buline.in");
ofstream ss("buline.out");
int main () {
	aa >> n;
	for (i=1;i<=n;++i) {
		aa >> x[i] >> d;
		if (d==0) x[i]=-x[i];
		sum+=x[i];
	}
	inceput=1;
	for (i=1;i<=n;++i) {
		sc+=x[i];
		if (sc>smax) {
			smax=sc;
			u=inceput;
			y=i-u+1;
		}
		if (sc<0) {
			inceput=i+1;
			sc=0;
		}
	}
	sc=0;
	inceput=1;
	for (i=1;i<=n;++i) {
		sc+=x[i];
		if (sc<smin) {
			smin=sc;
			u2=inceput;
			y2=i-u2+1;
		}
		if (sc>0) {
			inceput=i+1;
			sc=0;
		}
	}
	if (sum-smin>smax) {
		if (u2-1<1) u2=n+1;
		if (y2+1>n) y2=0;
		ss << sum-smin << " " << y2+u2 << " " << n-y2;
	}
	else ss << smax << " " << u << " " << y;
	return 0;
}