Cod sursa(job #2874719)

Utilizator mihaipriboimihailucapriboi mihaipriboi Data 20 martie 2022 00:33:11
Problema Cuburi2 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
// Mihai Priboi

#include <stdio.h>
#include <cmath>

#define int64 long long

#define MAX_N 250000

int64 sum[MAX_N + 1], mass[MAX_N + 1];

int main() {
  FILE *fin, *fout;
  int n, m, i, pos, x, y, cost;
  fin = fopen( "cuburi2.in", "r" );
  fout = fopen( "cuburi2.out", "w" );

  fscanf( fin, "%d%d", &n, &m );
  for( i = 1; i <= n; i++ ) {
    fscanf( fin, "%d", &sum[i] );
    mass[i] = mass[i - 1] + sum[i] * i;
    sum[i] += sum[i - 1];
  } 

  for( i = 0; i < m; i++ ) {
    fscanf( fin, "%d%d", &x, &y );
    pos = std::round( (double)(mass[y] - mass[x - 1]) / (sum[y] - sum[x - 1]) );
    cost = sum[y] - sum[x - 1] - (sum[pos] - sum[pos - 1]);
    fprintf( fout, "%d 0\n", pos );
  }

  fclose( fin );
  fclose( fout );
  return 0;
}