Cod sursa(job #1862380)

Utilizator paulstepanovStepanov Paul paulstepanov Data 29 ianuarie 2017 21:11:05
Problema Bilute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("bilute.in");
ofstream fout("bilute.out");

const int Nmax=30005;
int N,C[Nmax],L[Nmax],S[Nmax];
long long Sol1,Sol2,cost;

void Read()
{
    int N;
    fin>>N;
    for(int i=1;i<=N;++i)
        fin>>C[i]>>L[i];
}

void Solve()
{
    S[1]=C[1];
    for(int i=2;i<=N;++i)
        S[i]=S[i-1]+C[i];
    for(int i=2;i<=N;++i)
        cost+=C[i]*L[i]+C[i]*(i-1);

    Sol2=cost;

    for(int i=2;i<=N;++i)
    {
        cost+=C[i-1]*L[i-1]-C[i]*L[i]+2*S[i-1]-S[N];
        if(cost<Sol2)
        {
            Sol1=i;
            Sol2=cost;
        }
    }
}
int main()
{
    Read(); Solve();
    fout<<Sol1<<" "<<Sol2<<"\n";
}