Cod sursa(job #797953)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 15 octombrie 2012 12:21:25
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int n, v[400010], c, x, maxim, l, p, i, m, lm, pm, a[400010];
int main(){
	f>>n;
	for(i=1; i<=n; i++)
	{
		f>>x>>c;
		if(c==0)
			v[i]-=x;
		else
			v[i]=x;
	}
	for(i=1; i<n; i++)
		v[i+n]=v[i];
	m=n+n-1;
	maxim=v[1];
	a[1]=v[1];
	l=1;
	lm=1;
	pm=1;
	p=1;
	for(i=2; i<=m; i++)
	{
		a[i]=max(v[i], a[i-1]+v[i]);
		if(a[i]>a[i-1])
			l++;
		if(a[i]>maxim)
		{
			maxim=a[i];
			lm=l;
			pm=p;
		}
		if(a[i]<0)
		{
			l=1;
			p=i+1;
		}
	}
	g<<maxim<<' '<<pm<<' '<<lm<<"\n";
	g.close();
	return 0;
}