Pagini recente » Cod sursa (job #57022) | Cod sursa (job #627661) | Cod sursa (job #892311) | Cod sursa (job #190523) | Cod sursa (job #434345)
Cod sursa(job #434345)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 100001
long int min (long int v[NMAX], long int n) {
long int minim = n;
long int i;
for (i=n-1; i>0; i--) {
if (v[i] == 0) {
return i;
}
if (v[i] < v[minim]) {
minim = i;
}
}
return minim;
}
int main () {
FILE *f, *g;
long int n, hmax, u, h, val, s=0, i, j, v[NMAX];
f = fopen ("gutui.in", "r");
g = fopen ("gutui.out", "w");
fscanf (f, "%ld", &n);
fscanf (f, "%ld", &hmax);
fscanf (f, "%ld", &u);
for (i=1; i<=n; i++) {
fscanf (f, "%ld", &h);
fscanf (f, "%ld", &val);
j = (hmax-h)/u + 1;
if (v[j] == 0) {
v[j] = val;
s +=val;
}
else {
if (val > v[j]) {
long int aux = v[j];
v[j] = val; val = aux;
s = s-val+v[j];
}
long int k = min (v, j);
if (val > v[k]) {
s = s-v[k]+val;
v[k] = val;
}
}
}
fprintf (g, "%ld", s);
fclose (f); fclose (g);
return 0;
}