Pagini recente » Cod sursa (job #489231) | Cod sursa (job #1894986) | Cod sursa (job #2649094) | Cod sursa (job #2814068) | Cod sursa (job #1247735)
#include <cstdio>
#include <cstring>
using namespace std;
FILE*is = fopen("energii.in", "r" );
FILE*os = fopen("energii.out", "w" );
int G, W, e[1002], c[1002], mn, suma;
int d[6000];
int main()
{
fscanf(is, "%d%d", &G, &W );
for ( int i = 1; i <= G; ++i )
{
fscanf(is, "%d%d", &c[i], &e[i] );
suma += c[i];
}
mn = suma;
memset(d, 0xff, sizeof(d) );
d[0] = 0;
for ( int i = 1; i <= G; ++i )
for ( int j = suma; j >= 0; --j )
if ( d[j] != -1 && d[j+c[i]] < d[j] + e[i] )
d[j+c[i]] = d[j] + e[i];
for ( int i = W; i <= suma; ++i )
if ( d[i] != -1 && d[i] < mn )
mn = d[i];
fprintf(os, "%d", mn);
fclose(os);
fclose(is);
return 0;
}