Cod sursa(job #1750930)

Utilizator alexpetrescuAlexandru Petrescu alexpetrescu Data 31 august 2016 14:43:20
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <cstdio>
#define MAXN 30000
int c[MAXN+1], l[MAXN+1], s[MAXN+1];
int main(){
    int ansa, n, i;
    long long ansb, cost;
    FILE *fin, *fout;
    fin=fopen("bilute.in", "r");
    fout=fopen("bilute.out", "w");
    fscanf(fin, "%d", &n);
    for(i=1; i<=n; i++)
        fscanf(fin, "%d%d", &c[i], &l[i]);
    cost=0;
    for(i=2; i<=n; i++)
        cost+=c[i]*l[i]+c[i]*(i-1);
    ansa=1;
    ansb=cost;
    for(i=1; i<=n; i++)
        s[i]=s[i-1]+c[i];
    for(i=2; i<=n; i++){
        cost+=c[i-1]*l[i-1]-c[i]*l[i]+2*s[i-1]-s[n];
        if(cost<ansb){
            ansa=i;
            ansb=cost;
        }
    }
    fprintf(fout, "%d %lld\n", ansa, ansb);
    fclose(fin);
    fclose(fout);
    return 0;
}