Cod sursa(job #2020853)

Utilizator andrei_diaconu11Andrei C. Diaconu andrei_diaconu11 Data 11 septembrie 2017 20:33:00
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fi("bilute.in");
ofstream fo("bilute.out");

int v[30001][2];

int main()
{
  long long i, T, n, bd, bs, cs, cd, min, t, culmin;
  fi >> n;
  T = 0;
  for(i = 0; i < n; i++){
    fi >> v[i][0] >> v[i][1];
    T += v[i][0] * v[i][1];
  }
  bd = 0;
  cd = 0;
  for(i = n - 1; i > 0; i--){
    bd += v[i][0];
    cd += bd;
  }
  bs = cs = 0;
  min = 1LL << 62;
  for(i = 0; i < n; i++){
    t = T - v[i][0] * v[i][1] + cs + cd;
    if(t < min){
      min = t;
      culmin = i;
    }
    bs += v[i][0];
    cs += bs;
    cd -= bd;
    bd -= v[i + 1][0];
  }
  fo << culmin + 1 << ' ' << min;
  return 0;
}