Pagini recente » Cod sursa (job #2802371) | Cod sursa (job #1120672) | Cod sursa (job #1869987) | Cod sursa (job #3214739) | Cod sursa (job #437680)
Cod sursa(job #437680)
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int main() {
int N, H, U, h[100000],g[100000],i,s=0,j,n,aux,p[100000],m[100000],x,max;
FILE *f1,*f2;
f1 = fopen ("gutui.in", "r");
f2 = fopen ("gutui.out", "w");
fscanf(f1, "%d", &N);
fscanf(f1, "%d", &H);
fscanf(f1, "%d", &U);
for ( i = 0; i < N; i++) {
fscanf(f1, "%d", &h[i]);
fscanf(f1, "%d", &g[i]);
}
for ( i = 0; i < N-1; i++)
for ( j = i+1; j < N; j++)
if (g[i]<g[j]) {
aux = g[i];
g[i]=g[j];
g[j]=aux;
aux=h[i];
h[i]=h[j];
h[j]=aux;}
//for ( i = 0; i < N; i++) m[0] =0;
p[0] = (H - h[0])/U +1;
m[(H - h[0])/U +1] = 1;
for ( i = 1; i < N; i++){
x = (H - h[i])/U +1;
max = 0;
for ( j = x; j > 0; j--)
if (m[j] == 0 && j >max) max = j;
p[i]=max;
m[max]=1;
}
for ( i = 0; i < N; i++)
if (p[i]>0) s=s+g[i];
fprintf(f2,"%d",s);
fclose(f1);
fclose(f2);
}