Pagini recente » Cod sursa (job #495926) | Cod sursa (job #1914988) | Cod sursa (job #454191) | Cod sursa (job #3249170) | Cod sursa (job #724696)
Cod sursa(job #724696)
#include<stdio.h>
#include<stdlib.h>
int N,H,U;
struct gutuie
{
int inaltime;
int greutate;
};
gutuie G[100001];
int culese[100001];
int compare(const void *a,const void *b)
{
return ( *(int *)b - *(int *)a );
}
int main()
{
FILE *f=fopen("gutui.in","rt");
FILE *g=fopen("gutui.out","wt");
int i,ult=-1,min,pozmin,j;
fscanf(f,"%i%i%i",&N,&H,&U);
for(i=0;i<N;++i)
fscanf(f,"%i%i",&G[i].inaltime,&G[i].greutate);
qsort(G,N,sizeof(gutuie),compare);
for(i=0;i<N;++i)
{
if(G[ i].inaltime <= H)
{
culese[++ult]=G[i].greutate;
H-=U;
}
else
{
min=culese[0];pozmin=0; //aici merge imbunatatire,parcurg vectorul ca sa determin minimul;
if(ult >=1 )for(j=1;j<=ult;++j)
if(culese[j] < min)
{
min=culese[j];
pozmin=j;
}
if(G[i].greutate > min)
{
culese[pozmin]=G[i].greutate;
printf("MUITZA");
}
}
}
int s=0;
for(i=0;i<=ult;++i)
s+=culese[i];
fprintf(g,"%i",s);
return 0;
}