Pagini recente » Cod sursa (job #2435872) | Cod sursa (job #441379) | Cod sursa (job #1572206) | Cod sursa (job #441089) | Cod sursa (job #441345)
Cod sursa(job #441345)
#include <stdlib.h>
#include <stdio.h>
//#include <conio.h>
int main()
{
long int h[256], g[256], rm[256], x[256];
long int i, j, n, H, U, aux, sum=0, k;
FILE* fin;
FILE* fout;
fin = fopen ("gutui.in", "r");
fout = fopen ("gutui.out", "w");
fscanf (fin, "%li %li %li", &n, &H, &U);
for ( i=0; i<n; i++)
fscanf ( fin, "%li %li", &h[i], &g[i] );
for( i=0; i<n; i++)
rm[i] = (H-h[i]) / U ;
int max=rm[0];
for( i=1; i<n; i++)
if(max < rm [i])
max = rm[i];
for( i=0; i<n; i++)
for( j=i+1; j<n; j++)
{
if ( g[i] <= g[j] )
{
aux = h[i];
h[i] = h[j];
h[j] = aux;
aux = g[i];
g[i] = g[j];
g[j] = aux;
}
}
for( i=0; i<n; i++)
printf("%li ", g[i]);
for( i=0; i<=max; i++)
x[i] = 0;
for( i=0; i<n; i++)
{
if( h[i] <= H )
{
if( x[ rm[i] ]==0 )
x[ rm[i] ] = g[i];
else
{
for ( k=i-1; k>=0; k--)
if( x[k]==0 )
{
x[ k ] = g[i];
break;
}
}
}
/*
for( k=0; k<=max; k++)
printf("%li ", x[k]);
printf("\n");
*/
}
for( i=0; i<=max; i++)
sum = sum + x[i];
fprintf(fout, "%li", sum);
fclose(fin);
fclose(fout);
//getch();
return 0;
}