Cod sursa(job #288642)

Utilizator ConsstantinTabacu Raul Consstantin Data 25 martie 2009 23:07:54
Problema Bilute Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>

struct bilute{int nr,t;}v[3500];

int l1[3003],l2[3003],t1[3003],t2[3003],i,j,l,m,n,k,tmin=0xfffffff;

int main(){

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

scanf("%d",&n);
for(i=1;i<=n;i++)
        scanf("%d %d",&v[i].nr,&v[i].t);
for(i=1;i<=n;i++)
        l1[i]=l1[i-1]+v[i].t*v[i].nr;

for(i=n;i>=1;i--)
        l2[i]=l2[i+1]+v[i].t*v[i].nr;

for(i=1;i<=n;i++)
        {t1[i]=t1[i-1]+k;
        k+=v[i].nr;
        }

k=0;
for(i=n;i>=1;i--)
       {t2[i]=t2[i+1]+k;
       k+=v[i].nr;
       }

for(i=1;i<=n;i++)
        if(l1[i-1]+l2[i+1]+t1[i]+t2[i]<tmin)
                {tmin=l1[i-1]+l2[i+1]+t1[i]+t2[i];k=i;}

printf("%d %d",k,tmin);
return 0;}