Pagini recente » Cod sursa (job #2661642) | Cod sursa (job #1286778) | Cod sursa (job #1530983) | Cod sursa (job #1580338) | Cod sursa (job #2874719)
// 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;
}