Pagini recente » Cod sursa (job #110772) | Cod sursa (job #2380388) | Cod sursa (job #2963471) | Cod sursa (job #2970860) | Cod sursa (job #438515)
Cod sursa(job #438515)
#include <stdio.h>
#define max 100000
typedef struct gutui {
int h; // inaltime
int m; // masa
} gutui;
int comp(void* a,void* b)
{ if ( ((gutui*)a)->h < ((gutui*)b)->h) return 1;
else if ( ((gutui*)a)->h = ((gutui*)b)->h)
if ( ((gutui*)a)->m < ((gutui*)b)->m) return 1;
else return -1;}
int main() {
FILE* s = fopen("gutui.in","r");
FILE* d = fopen("gutui.out","w");
gutui vect[max];
int n,h,u,i,j,masa,maxmasa,crt;
//citesc datele
fscanf(s,"%i",&n);
fscanf(s,"%i",&h);
fscanf(s,"%i",&u);
for (i=0;i<n;i++)
{fscanf(s,"%i",&vect[i].h);
fscanf(s,"%i",&vect[i].m);}
//
qsort(vect,n,sizeof(gutui),comp);
maxmasa=vect[0].m;
for (i=0;i<n-1;i++) {
masa=vect[i].m;
crt=1;
for (j=i+1;j<n;j++)
if (vect[j].h + u * crt <= h ) {masa=masa+vect[j].m;crt++;}
if (masa>maxmasa) maxmasa=masa;
}
fprintf(d,"%i \n", maxmasa);
fclose(s);
fclose(d);
return 0;
}