Pagini recente » Cod sursa (job #2822887) | Cod sursa (job #2833709) | Cod sursa (job #386385) | Cod sursa (job #2952008) | Cod sursa (job #753678)
Cod sursa(job #753678)
#include<stdio.h>
using namespace std;
int main () {
freopen ( "rucsac.in", "r", stdin );
freopen ( "rucsac.out", "w", stdout );
int n, g, weight [5001], price [5001], i, mat [501][501], pmax = 0, gre = 0, ok, j, aux;
scanf ( "%d %d", &n, &g );
for ( i = 1; i <= n; i++)
scanf ("%d %d", &weight [i], &price [i] );
do {
ok = 0;
for ( i = 1; i < n; i++ )
for ( j = i + 1; j <= n; j++ )
if ( price [i] > price [j] ) {
aux = weight [i];
weight [i] = weight [j];
weight [j] = aux;
aux = price [i];
price [i] = price [j];
price [j] = aux;
ok = 1;
}
else if ( price [i] == price [j] )
if ( weight[i] > weight [j] ) {
aux = weight [i];
weight [i] = weight [j];
weight [j] = aux;
aux = price [i];
price [i] = price [j];
price [j] = aux;
ok = 1;
}
} while ( ok );
for ( i = 1; i <= n; i++)
if ( gre + weight [i] <= g ) {
gre += weight [i];
pmax += price [i];
}
printf ( "%d", pmax);
return 0;
}