Cod sursa(job #288650)

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

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

long long 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("%lld",&n);
for(i=1;i<=n;i++)
        scanf("%lld %lld",&v[i].nr,&v[i].t);
for(i=1;i<=n;i++)
        {l1[i]=l1[i-1]+v[i].t*v[i].nr;
        t1[i]=t1[i-1]+k;
        k+=v[i].nr;}
k=0;
for(i=n;i>=1;i--)
        {l2[i]=l2[i+1]+v[i].t*v[i].nr;
        t2[i]=t2[i+1]+k;
        k+=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("%lld %lld",k,tmin);
return 0;}