Pagini recente » Cod sursa (job #2735890) | Cod sursa (job #1732485) | Cod sursa (job #2016230) | Cod sursa (job #1035980) | Cod sursa (job #677951)
Cod sursa(job #677951)
#include <fstream>
using namespace std;
#define NMAX 1002
#define SMAX 5002
#define INF 0x3FFFFFFF
const char infile[] = "energii.in";
const char outfile[] = "energii.out";
int M[SMAX];
int Energy[NMAX];
int Cost[NMAX];
int N;
int S;
int Minimum;
void Solve()
{
for(int i = 1 ; i < SMAX; ++i)
{
M[i] = INF;
}
for(int i = 0 ; i < N; i++)
{
for(int j = S; j >= 0; --j)
{
if( M[j] != INF)
{
if( j + Energy[i] >= S)
{
M[S] = min( M[j] + Cost[i] , M[S]);
}
else
{
M[j + Energy[i]] = min(M[j] + Cost[i], M[j + Energy[i]]);
}
}
}
}
Minimum = M[S];
}
int main(int argc, char* argv[])
{
fstream fin(infile, ios::in);
fin >> N;
fin >> S;
for(int i = 0 ; i < N; ++i)
{
fin >> Energy[i] >> Cost[i];
}
fin.close();
Solve();
fstream fout(outfile, ios::out);
fout << Minimum << "\n";
fout.close();
}