Pagini recente » Cod sursa (job #1732821) | Cod sursa (job #172514) | Cod sursa (job #405951) | Cod sursa (job #268850)
Cod sursa(job #268850)
#include <cstdio>
#include <climits>
#define DIM 250005
#define INF LONG_MAX
int n, m, v1[DIM];
long v2[DIM];
long abs(int x)
{
if (x > 0)
return x;
else
return -x;
}
void citire(FILE *f)
{
fscanf(f, "%d%d", &n, &m);
int i;
for (i = 1; i <= n; i++)
fscanf(f, "%d", &v1[i]);
// for (i = 1; i <= n; i++)
// printf("%d ", v1[i]);
}
void refresh(int x, int y)
{
for(int i = x; i <= y; i++)
v2[i] = 0;
}
int main()
{
FILE *f = fopen("cuburi2.in", "r");
FILE *out = fopen("cuburi2.out", "w");
citire(f);
int i,x , y, min, ibun;
for (int z = 1; z <= m; z++)
{
fscanf(f, "%d%d", &x, &y);
for (int k = x; k <= y ; k++)
for (i = x; i <= y ; i++)
v2[i] +=(long)(v1[k] * abs(i-k));
min = INF;
ibun = -1;
for (i = x; i <= y; i++)
if (v2[i] < min)
min = v2[i], ibun = i;
fprintf(out, "%d %d\n", ibun, min);
if (z != m)
refresh(x, y);
}
fclose(f);
fclose(out);
return 0;
}