Cod sursa(job #136954)

Utilizator ScrazyRobert Szasz Scrazy Data 16 februarie 2008 17:48:30
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>
#define NM 30001
int n,c[NM],l[NM];
int s[NM];
long long sol[NM];
int poz;

void solve()
{ 
	for(int i=2;i<=n;i++)
		sol[1]+=(i-1)*c[i]+c[i]*l[i];
	for(int i=2;i<=n;i++)
		sol[i]=sol[i-1]-c[i]*l[i]+c[i-1]*l[i-1]+2*s[i-1]-s[n];
	poz=1;
	for(int i=1;i<=n;i++)
		if(sol[i]<sol[poz])
			poz=i;
}

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

	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d %d", c+i, l+i);
		s[i]=s[i-1]+c[i];
	}

	solve();
	printf("%d %lld", poz, sol[poz]);

	fclose(stdin);
	fclose(stdout);

	return 0;
}