Cod sursa(job #121990)

Utilizator igorPirnau Igor igor Data 10 ianuarie 2008 17:07:51
Problema Bilute Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream.h>

ifstream f("bilute.in");
ofstream g("bilute.out");

#define nmax 30100
#define inf 10000000

int n, i, c[nmax], l[nmax], imin, st[nmax], dr[nmax];
long min, lus, sum;

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>c[i]>>l[i];
        lus=lus+c[i]*l[i];
    }
    f.close();
    
    sum=0;
    for(i=1;i<=n;i++)  
    {
        st[i]=st[i-1]+sum;
        sum=sum+c[i];
    }
    
    sum=0;
    for(i=n;i>0;i--)
    {
        dr[i]=dr[i+1]+sum;
        sum=sum+c[i];
    }

    min=inf;
    for(i=1;i<=n;i++) if(min>st[i]+dr[i]+lus-l[i]*c[i]){ min=st[i]+dr[i]+lus-l[i]*c[i]; imin=i; }

    g<<imin<<' '<<min;
    g.close();
}