Cod sursa(job #2022394)

Utilizator giotoPopescu Ioan gioto Data 16 septembrie 2017 14:40:35
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;

int n, c[30005], l[30005];
int main()
{
    freopen("bilute.in", "r", stdin);
    freopen("bilute.out", "w", stdout);
    scanf("%d", &n);
    for(int i = 1; i <= n ; ++i)
        scanf("%d%d", &c[i], &l[i]);
    long long sR = 0, sr = 0, sr1 = 0;
    for(int i = n; i >= 1 ; --i){
        sr1 += c[i];
        sR = sR + sr1;
        sr = sr + 1LL * c[i] * l[i];
    }
    long long sL = 0, sl = 0, sl1 = 0, Min = 100000000000000000, p = 0;
    for(int i = 1; i <= n ; ++i){
        sR = sR - sr1;
        sr1 -= c[i];
        sr = sr - 1LL * c[i] * l[i];
        long long a = sL + sR + sr + sl;
        if(a < Min) Min = a, p = i;
        sl1 += c[i];
        sL = sL + sl1;
        sl = sl + 1LL * c[i] * l[i];
    }
    printf("%d ", p);
    printf("%lld", Min);
    return 0;
}