Cod sursa(job #353605)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 5 octombrie 2009 18:12:53
Problema Buline Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>

FILE *f,*s;

long long int n,i,max,lun,poz,v1[200005],v2[200005];

int main()
{
	f=fopen("buline.in","r");
	s=fopen("buline.out","w");
	
	fscanf(f,"%lld",&n);
	
	v2[0]=1;
	
	for(i=1;i<=n;i++)
	{
		int x,y;
		
		fscanf(f,"%d %d",&x,&y);
		
		if(y<=0)
			x*=(-1);
		
		v1[i]=v1[i-1]+x;
		
		
		if(v1[v2[i-1]]>v1[i])
			v2[i]=v2[i-1];
		else
			v2[i]=i;
	}	
	
	max=-10000000000000LL;
	
	for(i=1;i<=n;i++)
	{
		if(v1[v2[i-1]]+v1[n]-v1[i-1]>max)
		{
			max=v1[v2[i-1]]+v1[n]-v1[i-1];
			poz=i;
			lun=n+v2[i]-(i-1);
		}
	}	
		
	fprintf(s,"%lld %lld %lld",max,poz,lun);
	
	fclose(s);
	
	return 0;
}