Pagini recente » Cod sursa (job #3156447) | Cod sursa (job #1081412) | Cod sursa (job #1466434) | preoni-2007/runda-finala/poze/premiere | Cod sursa (job #437825)
Cod sursa(job #437825)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
//#include <conio.h>
//void qsort( void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) );
typedef struct {
int h;
int g;
}gutui;
int compare(const void *a, const void *b)
{
gutui *aa = (gutui *)a;
gutui *bb = (gutui *)b;
return -(aa->g -bb->g);
}
int main()
{
FILE *fis=fopen("gutui.in","r");
FILE *fis_out=fopen("gutui.out","w");
int n,h_max,u,i,j,aux=0,greutate=0;
fscanf(fis,"%i",&n);
gutui a[n];
fscanf(fis,"%i",&h_max);
fscanf(fis,"%i",&u);
for(i = 0; i < n; i++)
fscanf(fis, "%i %i", &a[i].h,&a[i].g);
qsort(a,n,sizeof(gutui),compare); //gutui sortate dupa greutate
int test[h_max/u+1];
for(i=0;i<=h_max/u;i++)
test[i]=0;
int ok=0;
for(i=0;i<n;i++)
{
aux=a[i].h/u+1;
for(;aux<=h_max/u;aux++)
if(test[aux]==0)
{
ok++;
test[aux]=1;
printf("%i %i\n",aux,a[i].g);
greutate=greutate+a[i].g;
}
}
/* for(i = 0; i < n; i++)
{
printf("%2i ",a[i].h);
printf("%2i ",a[i].g);
printf("\n");
}
printf("\n");
printf("Greutatea maxima este : %i",greutate);*/
fprintf(fis_out,"%i",greutate);
// getch();
return 0;
}