Cod sursa(job #2874832)

Utilizator Luca_Miscocilucainfoarena Luca_Miscoci Data 20 martie 2022 12:33:17
Problema Cuburi2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#define NMAX 250000
#define int long long
using namespace std;

int v[NMAX + 1], sp[NMAX + 1],spp[NMAX + 1];

signed main(){

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

  int n, q;

  fin >> n >> q;
  for (int i = 1; i <= n; i++){
    fin >> v[i];
    sp[i] = sp[i - 1] + v[i];
    spp[i] = spp[i - 1] + i * v[i];
  }

  while (q--){
    int x, y;
    fin >> x >> y;
    int st;
    st = x;
    int pas = ( 1 << 17 );
    while (pas > 0){
      if (st + pas <= y && 2 * sp[st + pas - 1] < sp[x - 1] + sp[y])
        st += pas;
      pas >>= 1;
    }
    fout << st << " " << spp[y] - spp[st] + st * ((sp[st] + sp[st - 1]) - (sp[x - 1] + sp[y])) - (spp[st - 1] - spp[x - 1]) << "\n";
  }
  return 0;
}