Cod sursa(job #2024963)

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

#define MaxN 100005
#define INF 214000000

using namespace std;

FILE *IN,*OUT;

int N,C[MaxN],L[MaxN],minpos;
long long T=0,Min=INF*INF,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,"%d%d",&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;
}