Cod sursa(job #145344)

Utilizator toni2007Pripoae Teodor Anton toni2007 Data 28 februarie 2008 19:01:21
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#define N 30010
int n,c[N],l[N],b,v[N];
long long p, q, x, y, s, min;
int main(){
	freopen("bilute.in","r",stdin);
	freopen("bilute.out","w",stdout);
	int i,poz=0;
	scanf("%d",&n);
	for (i=1;i<=n;++i)
        scanf("%d%d",&c[i],&l[i]);	
    for (i=2;i<=n;++i){  
        y+=c[i]*l[i];  
        q+=c[i]*(i-1);  
    }  
    for (i=n;i>=1;--i)
        v[i]=v[i+1]+c[i];  
    min=q+y;
    b=1;  
    for(i=2;i<=n;++i){ 
        x+=c[i-1]*l[i-1];  
        y-=c[i]*l[i];  
        s+=c[i-1];  
        p+=s;  
        q-=v[i];  
        if(x+p+y+q< min){  
            min=x+p+y+q;  
			b=i;  
        }  
    }  
    printf("%d %lld\n",b,min);  
    return 0;  
}