Cod sursa(job #429878)

Utilizator drywaterLazar Vlad drywater Data 30 martie 2010 16:13:51
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
FILE *f=fopen("buline.in","r"),*g=fopen("buline.out","w");
int i,n,v[400001],p,l,pm,lm,s,sm=-2000000000,t;
int main(void)
{
	fscanf(f,"%d",&n);
	for (i=1;i<=n;i++)
	{
		fscanf(f,"%d%d",&v[i],&t);
		if (t==0)
			v[i]=v[i]*(-1);
		if (s<v[i] && s<0)
		{
			s=v[i];
			l=1;
			p=i;
		}
		else {s+=v[i]; l++;}
		if (s>sm)
		{
			sm=s;
			lm=l;
			pm=p;
		}
		else
		{
			if (s==sm && l>lm && p==pm)
			{
				sm=s;
				pm=p;
				lm=l;
			}
		}
	}
	if (s>0)
		for (i=1;i<p;i++)
		{
		if (s<v[i] && s<0)
		{
			s=v[i];
			l=1;
			p=i;
		}
		else {s+=v[i]; l++;}
		if (s>sm)
		{
			sm=s;
			lm=l;
			pm=p;
		}
		else
		{
			if (s==sm && l>lm && p==pm)
			{
				sm=s;
				pm=p;
				lm=l;
			}
		}
		}
	fprintf(g,"%d %d %d\n",sm,pm,lm);
	fclose(g);
	return 0;
}