Cod sursa(job #2859320)

Utilizator lolismekAlex Jerpelea lolismek Data 1 martie 2022 10:20:00
Problema Bilute Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>

#define int long long

using namespace std;

ifstream fin("bilute.in");
ofstream fout("bilute.out");

struct nuanta{int C, L;};
const int N = 3e4, inf = 1e18 + 1;
nuanta v[N + 1];
int dp[N + 1], prefix[N + 1];

signed main(){
    int n, sumL = 0;
    fin >> n;
    for(int i = 1; i <= n; i++){
        fin >> v[i].C >> v[i].L;
        sumL += (v[i].C * v[i].L);
        prefix[i] = prefix[i - 1] + v[i].C;
        dp[i] = dp[i - 1] + (i * v[i].C);
    }
    int ans = inf, i_choice = 0;
    for(int i = 1; i <= n; i++){
        int tmp = sumL - (v[i].C * v[i].L);
        tmp += (i * prefix[i - 1]);
        tmp -= (i * (prefix[n] - prefix[i]));
        tmp -= dp[i - 1];
        tmp += (dp[n] - dp[i]);
        if(tmp < ans) ans = tmp, i_choice = i;
    }
    fout << i_choice << ' ' << ans;
    return 0;
}