Pagini recente » Istoria paginii runda/simulare-cartita-37 | Cod sursa (job #1559059) | Cod sursa (job #2433164) | Istoria paginii runda/garbotei1 | Cod sursa (job #437571)
Cod sursa(job #437571)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
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->h -bb->h);
}
int max (const void *a,int n)
{
gutui *aa=(gutui *)a;
int i,max=0,ok=0;
for(i=0;i<n;i++)
if(aa[i].g > max)
max=aa[i].g;
return max;
}
int main()
{
FILE *fis=fopen("gutui.in","r");
FILE *fis_out=fopen("gutui.out","w");
int n,h_max,u,i,j,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);
for (i=n-1;i>=0;i--)
{
if (a[i].h<=h_max)
{
greutate+=a[i].g;
h_max=h_max-u;
}
}
fprintf(fis_out,"%i",greutate);
return 0;
}