Cod sursa(job #116887)

Utilizator filipbFilip Cristian Buruiana filipb Data 19 decembrie 2007 19:32:24
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <stdio.h>

#define ll long long

int N, C[30005], L[30005];
ll S[30005], SI[30005], bst = 100000000000000LL, ST;

int main(void)
{
    int i, j;
    ll R;
    
    freopen("bilute.in", "r", stdin);
    freopen("bilute.out", "w", stdout);

    scanf("%d", &N);
    for (i = 1; i <= N; i++)
    {
        scanf("%d %d", &C[i], &L[i]);
        S[i] = S[i-1] + C[i];
        SI[i] = SI[i-1] + (ll)i * C[i];
        ST += C[i] * L[i];
    }

    for (i = 1; i <= N; i++)
    {
        // vopsim toate bilele in nuanta i
        R =  ST - C[i] * L[i] + S[i-1] * i - SI[i-1] + SI[N] - SI[i] - (S[N] - S[i]) * i;
        if (bst > R)
            bst = R, j = i;
    }

    printf("%d %lld\n", j, bst);
    
    return 0;
}