Cod sursa(job #2859411)

Utilizator Asgari_ArminArmin Asgari Asgari_Armin Data 1 martie 2022 12:12:51
Problema Bilute Scor 100
Compilator cpp-64 Status done
Runda tagalaibas Marime 0.82 kb
#include <iostream>
#include <fstream>
#define int long long 

using namespace std;

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

const int NMAX = 30000;
int arrC[NMAX + 2], arrL[NMAX + 2];
int sp[NMAX + 2];
int spC[NMAX + 2];

signed main() {
  int n, c, l, sumL, i;
  
  fin >> n;

  sumL = 0;
  for (i = 1; i <= n; ++i) {
    fin >> c >> l;
    arrC[i] = c;
    arrL[i] = l;
    spC[i] = spC[i - 1] + c;
    sp[i] = sp[i - 1] + c * i;
    sumL += c * l;
  }
  
  int minn = (1ll << 62);
  int pos = -1;
  for (i = 1; i <= n; ++i) {
    int ans = sumL - arrC[i] * arrL[i];
    //cout << ans << "\n";
    ans = ans + (i * spC[i - 1]) - sp[i - 1];
    ans = ans + (sp[n] - sp[i]) - (i * (spC[n] - spC[i]));
    if (minn > ans) {
      minn = ans;
      pos = i;
    }
  }
  fout << pos << " " << minn << "\n";
  return 0;
}