#include <stdio.h>
#include <stdlib.h>
void citire(FILE *f,int n,int gutui[100][100]){
int i,h,g,x=0;
char linie[100];
for (i=0;i<n;i++){
fgets (linie,100,f);
sscanf (linie,"%d %d",&h,&g);
gutui[x][0] = h;
gutui[x][1] = g;
x++;
}
}
int determinare_max (int gutui[100][100], int n, int max){ //determina cea mai de jos gutuie la care poate ajunge
int i,poz;
max = gutui[0][0];
for (i=1;i<n;i++)
if (max <= gutui[i][0]){
max = gutui[i][0];
poz = i;
}
return poz;
}
int selecteaza (int gutui[100][100], int n, int h, int rez[100][100]){ //selecteaza gutuile la care mai poate ajunge
int i,j=0,n1 = 0;
for (i=0;i<n;i++)
if (gutui[i][0] <= h && gutui[i][0] > 0){
rez[j][0] = gutui[i][0];
rez[j][1] = gutui[i][1];
j++;
n1++;
}
return n1;
}
int main (){
int i,n1,n,h,u,jos,poz;
int suma;
FILE *f,*g;
char linie[100];
int gutui[100][100],rez[100][100];
f = fopen ("gutui.txt","r");
g = fopen ("out.txt","w");
//citire din fisier
fgets (linie,100,f);
sscanf (linie, "%d %d %d",&n,&h,&u);
citire (f,n,gutui);
for (i=0;i<n;i++)
printf ("%d %d\n",gutui[i][0],gutui[i][1]);
poz = determinare_max (gutui,n,jos);
suma = 0;
printf ("intru in while\n");
while (h <= jos && h >= 0){
suma = suma + gutui[poz][1];
printf ("%d %d %d %d\n",poz,gutui[poz][0],gutui[poz][1],suma);
gutui[poz][0] = 0;
h = h - u;
//printf ("%d\n",h);
n1 = selecteaza (gutui,n,h,gutui);
if (n1 == 1){
suma = suma + rez[0][1];
break;
}
else
poz = determinare_max (gutui,n1,jos);
}
printf ("ies din while\n");
fprintf (g,"%d\n",suma);
return 0;
}