Pagini recente » Cod sursa (job #2571579) | Cod sursa (job #538990) | Cod sursa (job #3294618) | Cod sursa (job #2799699) | Cod sursa (job #433554)
Cod sursa(job #433554)
#include <stdio.h>
//#include <conio.h>
#define NMAX 100000
typedef struct gutuie{
int in; // inaltime
int gr; // greutate
} gutuie;
void ordonare(gutuie g[NMAX], int n){
gutuie aux;
int i,j;
for(i = 0; i < n-1; i++)
for(j = i+1; j < n; j++)
if(g[i].in < g[j].in){
aux = g[i];
g[i] = g[j];
g[j] = aux;
}
}
int alegere(gutuie g[NMAX], int n, int h, int u){
int rid = 0;; // ridicare curenta
int i;
int rez = 0;
for(i = 0; i < n; i++){
if(g[i].in + rid <= h){
rez += g[i].gr;
rid += u;
}
}
return rez;
}
int main(){
FILE* f;
int n, h, u;
gutuie g[NMAX];
int i;
int rez;
f = fopen("gutui.in","r");
fscanf(f,"%d %d %d",&n,&h,&u);
for(i = 0; i < n; i++)
fscanf(f,"%d %d", &g[i].in, &g[i].gr);
fclose(f);
// aflare valoare
ordonare(g,n);
rez = alegere(g,n,h,u);
// // debugging
// printf("%d %d %d\n",n,h,u);
// for(i = 0; i < n; i++)
// printf("%d %d\n",g[i].in, g[i].gr);
// scriere
f = fopen("gutui.out","w");
fprintf(f,"%d",rez);
fclose(f);
// terminare
// getch();
return 0;
}