Pagini recente » Cod sursa (job #3191391) | Autentificare | Cod sursa (job #746044) | Cod sursa (job #1031895) | Cod sursa (job #435068)
Cod sursa(job #435068)
//#include<conio.h>
#include<stdio.h>
//int max[];
int N=0, H=0, U=1, nr=0, *ordh, *ordg, hh=0, gg=0, i, j, j2, k, suma, a, b, aux;
FILE *f, *g;
int main()
{
f = fopen("gutui.in","r");
if(!f) {printf("eroare f"); return 1;}
g = fopen("gutui.out","w");
if(!f) {printf("eroare g"); return 2;}
fscanf(f,"%i", &N);
fscanf(f,"%i", &H);
fscanf(f,"%i", &U);
ordh = calloc (N,sizeof(int));
ordg = calloc (N,sizeof(int));
for(i=0;i<N;i++)
{
// printf("\n nivelul %i : %i ", j, max[j][0]);
fscanf(f,"%i", &a); //a este inaltime initiala
fscanf(f,"%i", &b); //b este greutatea
j= a/U;
for(k=0; k<N, ordg[k]>0; k++)
{ j2=ordh[k]/U;
if(j>j2) { aux=a; a=ordh[k]; ordh[k]=aux; aux=b; b=ordg[k]; ordg[k]=aux;}
if(j==ordh[k] && b>ordg[k]) { aux=a; a=ordh[k]; ordh[k]=aux; aux=b; b=ordg[k]; ordg[k]=aux;}
}
ordh[k]=j; ordg[k]=b;
//ordh[hh++]=a;
//ordg[gg++]=b;
}
nr=0; suma=0;
for(i=0;i<N;i++)
{
while(ordh[i]+nr > H) i++;
suma+=ordg[i];
nr+=U;
}
// printf("\n%i ", suma);
fprintf(g,"%i", suma);
// getch();
return 0;
}