Cod sursa(job #2024968)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 21 septembrie 2017 18:14:33
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

#define MaxN 100005
#define INF 2140000000
#define INFLL 4611686018427387904

using namespace std;

FILE *IN,*OUT;

int N,minpos=1;
long long T=0,C[MaxN],L[MaxN],Min=INFLL,F[MaxN],B[MaxN];

int main()
{
    IN=fopen("bilute.in","r");
    OUT=fopen("bilute.out","w");

    fscanf(IN,"%d",&N);

    for(int i=1;i<=N;i++)
    {
        fscanf(IN,"%lld %lld",&C[i],&L[i]);
        T+=L[i]*C[i]+C[i]*i;
    }
    for(int i=1;i<=N;i++)
    {
        F[i]=F[i-1]+C[i];
        B[N-i+1]=B[N-i+2]+C[N-i+1];
    }

    for(int i=1;i<=N;i++)
    {
        T-=B[i]-F[i-1];
        if(Min>T-L[i]*C[i])
            Min=T-L[i]*C[i],minpos=i;
    }
    fprintf(OUT,"%d %lld",minpos,Min);
    return 0;
}