Cod sursa(job #797919)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 15 octombrie 2012 11:16:56
Problema Buline Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int n, s, se, v[200010], c, x, maxim, minim, l, p, i, p1, l1;
int main(){
	f>>n;
	for(i=1; i<=n; i++)
	{
		f>>x>>c;
		if(c==0)
		{
			v[i]-=x;
			se-=x;
		}
		else
		{
			v[i]=x;
			se+=x;
		}
	}
	s=0;
	l=1;
	p=1;
	maxim=v[1];
	p=1;
	l=1;
	
	for(i=2; i<=n; i++)
	{
		if(s==0)
		{
			s=v[i];
			if(s>maxim)
			{
				maxim=s;
				l=1;
				p=i;
			}
		}
		else
		{
			s+=v[i];
			if(s>maxim)
			{
				maxim=s;
				l++;
			}
		}
		if(s<0)
			s=0;
	}
	minim=v[1];
	p1=1;
	l1=1;
	for(i=2; i<=n; i++)
	{
		if(s==0)
		{
			s=v[i];
			if(s<minim)
			{
				minim=s;
				l1=1;
				p1=i;
			}
		}
		else
		{
			s+=v[i];
			if(s<minim)
			{
				minim=s;
				l++;
				p1=i;
			}
		}
		if(s>0)
			s=0;
	}
	s=se-minim;
	if(s>maxim)
		g<<s<<' '<<p1+1<<' '<<n-l1;
	else
		g<<maxim<<' '<<p<<' '<<l;
	g.close();
	return 0;
}