Pagini recente » Cod sursa (job #3157466) | Cod sursa (job #434525) | Cod sursa (job #3249056) | Monitorul de evaluare | Cod sursa (job #438082)
Cod sursa(job #438082)
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct gut{
long int hl;
long int g;
}gutui ;
gutui *a; long int n=0;
void sort(){
long int i,j;
for(i=0;i<n;i++)
for(j=n-1;j>i;j--)
if(a[j].g<a[j-1].g) {
long int t1,t2;
t1=a[j].g; a[j].g=a[j-1].g; a[j-1].g=t1;
t2=a[j].hl; a[j].hl=a[j-1].hl; a[j-1].hl =t2;
}
}
int main ()
{
long int i,u,h;
FILE *f1, *f2;
f1=fopen("gutui.in","r");
f2=fopen("gutui.out", "w");
fscanf(f1,"%ld",&n);
fscanf(f1,"%ld",&h);
fscanf(f1,"%ld",&u);
a = ( gutui *)malloc( n* sizeof( gutui));
for(i=0;i<n;i++){
a[i].hl=(long int)malloc(sizeof(long int));
a[i].g=(long int)malloc(sizeof (long int));
fscanf(f1,"%ld",&a[i].hl);
fscanf(f1,"%ld", &a[i].g);
}
long int s[n];
int k=0;
long int crt;
int gata=1;
//while(gata>0){
long int j;
for(j=0;j<n;j++){
long int hh;
gata=0;
sort();
crt=0;
s[k]=0;
for(i=0;i<n;i++){
//printf ("--%ld--", a[i].g);
hh=a[i].hl+crt*u;
if (hh<=h) {
//printf ("--%ld--", a[i].hl);
s[k]=s[k]+a[i].g;
if (crt==0){a[i].hl=h+2;a[i].g=0;}
gata=1;
crt++;
}
}
printf ("|");
printf ("--%ld--", s[k]);
k++;
}
long int maxs=0;
for(i=0;i<k;i++)
if(s[i]>maxs) maxs=s[i];
fprintf(f2,"%ld",maxs);
return 0;
}