Cod sursa(job #2976814)

Utilizator VmanDuta Vlad Vman Data 10 februarie 2023 05:27:20
Problema Bibel Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
using namespace std;

#define Nmax 300003

int n;
int c[Nmax], l[Nmax];

int main() {
    freopen("bilute.in", "r", stdin);
    freopen("bilute.out", "w", stdout);
    
    long long st = 0, dr = 0;
    long long sumSt = 0;
    long long sumDr = 0;
    
    cin >> n;
    for (int i = 0; i < n; ++i) {
        cin >> c[i] >> l[i];
    }
    for (int i = n-1; i >= 0; --i) {
        sumDr += c[i];
        dr += (l[i] * c[i]) + sumDr;
        //cout << dr << endl;
    }

    long long best = dr;
    int pos = 1;
    for (int i = 0; i < n; ++i) {
        dr -= (l[i] * c[i]) + sumDr;
        sumDr -= c[i];
        
        //cout << st << " " << dr << endl;
        
        if (st + dr < best) {
            best = st + dr;
            pos = i + 1;
        }
        
        sumSt += c[i];
        st += (l[i] * c[i]) + sumSt;
    }
    
    cout << pos << " " << best << "\n";
    
    return 0;
}