Cod sursa(job #429900)

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