Cod sursa(job #116899)

Utilizator Binary_FireFlorin Pogocsan Binary_Fire Data 19 decembrie 2007 19:50:16
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>

#define fin  "bilute.in"
#define fout "bilute.out"

const long long MAX  = 2001010100000000LL;
const int Nmax = 30100;

int N,a[Nmax],b[Nmax],cul;
long long smin = MAX;
long long s1,s2,sumL,sel,sel2;

int main()
{
	int i;

	freopen(fin,"r",stdin);
	freopen(fout,"w",stdout);

	scanf("%d",&N);
	
	for (i=1;i<=N;++i)
	{
		scanf("%d%d",&a[i],&b[i]);
		sumL+=a[i]*b[i];
		
		s2   = s2 + a[i] * i;
		sel += a[i];
	}

	for ( i = 1 ; i <= N ; ++i )
	{
		s2 -= sel;
		sel-=a[i];

		sel2+=a[i-1];
		s1 = s1 + sel2;

		if ( s1 + s2 + sumL - a[i] * b[i] < smin )
		{
			smin = s1 + s2 + sumL - a[i] * b[i];
			cul = i;
		}
		
//		printf("%d %d\n",s1,s2);

	}

	printf("%d %lld\n",cul,smin);

	return 0;
}