Cod sursa(job #129053)

Utilizator DITzoneCAdrian Diaconu DITzoneC Data 28 ianuarie 2008 15:43:50
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <stdio.h>

#define FOR(i,s,d) for(i=(s);i<(d);++i)
#define nmax 30111

typedef long long lint;

lint C[nmax],L[nmax],n,sol,sum,poz;

int main()
{
	freopen("bilute.in","r",stdin);
	freopen("bilute.out","w",stdout);
	lint i,a=0,b=0;
	scanf("%lld",&n);
	FOR(i,0,n)
		scanf("%lld %lld",&C[i],&L[i]),sum+=L[i]*C[i]+i*C[i],b+=C[i];
	b-=C[0]; poz=0;	sol=sum-L[0]*C[0];
	FOR(i,1,n)
	{
		a+=C[i-1];
		sum+=a-b;
		if(sum-L[i]*C[i]<sol)
			sol=sum-L[i]*C[i],poz=i;
		b-=C[i];
	}
	printf("%lld %lld\n",poz+1,sol);
	return 0;
}