Cod sursa(job #2005777)

Utilizator refugiatBoni Daniel Stefan refugiat Data 28 iulie 2017 10:42:52
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#define NMAX 30005
using namespace std;
ifstream si("bilute.in");
ofstream so("bilute.out");
int c[NMAX],l[NMAX];
long long dr[NMAX];
int main()
{
    int n;
    si>>n;
    for(int i=1;i<=n;++i)
    {
        si>>c[i]>>l[i];
    }
    int cont=0;
    for(int i=n;i>0;--i)
    {
        dr[i]=dr[i+1]+cont+c[i+1]*(l[i+1]+1);
        cont+=c[i+1];
    }

    cont=0;
    long long st,st1=0,sol=(1LL<<60);
    int bst=0;
    for(int i=1;i<=n;++i)
    {
        st=st1+cont+c[i-1]*(l[i-1]+1);
        cont+=c[i-1];
        if(st+dr[i]<sol)
        {
            sol=st+dr[i];
            bst=i;
        }
        st1=st;
    }
    so<<bst<<' '<<sol<<'\n';
    return 0;
}