Cod sursa(job #208373)

Utilizator devilkindSavin Tiberiu devilkind Data 16 septembrie 2008 00:03:53
Problema Bilute Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>

#define NMAX 30002

int L[NMAX],C[NMAX],SP[NMAX];
int N,S;
int sol,poz,crt;

int main()
{
	freopen("bilute.in","r",stdin);
	freopen("bilute.out","w",stdout);

	int i;

	scanf("%d ",&N);

	for (i=1;i<=N;i++)
	{
		scanf("%d %d",&C[i],&L[i]);
		SP[i]=SP[i-1]+C[i];
		S+=L[i]*C[i];
	}

	sol=0;poz=1;crt=0;
	for (i=2;i<=N;i++)
	{
		sol=sol+L[i]*C[i]+C[i]*(i-1);
		crt=crt+C[i]*(i-1);
	}

	for (i=2;i<=N;i++)
	{
		crt=crt+SP[i-1]-(SP[N]-SP[i-1]);
		if (crt+S-L[i]*C[i]<sol) 
		{
			sol=crt+S-L[i]*C[i];
			poz=i;
		}
	}

	printf("%d %d",poz,sol);
	return 0;
}