Cod sursa(job #2022391)

Utilizator giotoPopescu Ioan gioto Data 16 septembrie 2017 14:33:12
Problema Bilute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 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;
    for(int i = n; i >= 1 ; --i)
        sR = sR + sR + c[i], sr = sr + 1LL * c[i] * l[i];
    long long sL = 0, sl = 0, Min = 1000000000000000000, p = 0;
    for(int i = 1; i <= n ; ++i){
        sR = (sR - c[i]) / 2;
        sr = sr - 1LL * c[i] * l[i];
        long long a = sL + sR + sr + sl;
        if(a < Min) Min = a, p = i;
        sL = sL + sL + c[i];
        sl = sl + c[i] * l[i];
    }
    printf("%d ", p);
    printf("%lld", Min);
    return 0;
}