Pagini recente » Cod sursa (job #1306621) | Clasament fefeqjowjcf | Cod sursa (job #895634) | Cod sursa (job #1465320) | Cod sursa (job #2109)
Cod sursa(job #2109)
#include <fstream>
using namespace std;
const int MaxN = 1001, MaxS = 5001;
int N, S, v[MaxN], cost[MaxN];
int c[MaxS];
int Minim = 999999999;
void ReadData(void)
{
ifstream fin("energii.in");
fin >> N >> S;
for (int k=1; k<=N; ++k)
fin >> v[k] >> cost[k];
fin.close();
}
int main(void)
{
int i, j, k;
ReadData();
for (j=1; j<=S; ++j) c[j] = -1;
c[0] = 0;
for (i=1; i<=N; ++i)
for (j=S; j>=0; --j)
if (c[j] != -1)
{
if (j + v[i] > S)
if (Minim > c[j] + cost[i])
Minim = c[j] + cost[i];
if (j + v[i] <= S)
if (c[j + v[i]] > c[j] + cost[i] || c[j + v[i]] == -1)
c[j + v[i]] = c[j] + cost[i];
}
ofstream fout("energii.out");
if (c[S] == -1 || Minim == 999999999)
fout << -1;
else
fout << (Minim < c[S] ? Minim : (c[S] == -1 ? Minim : c[S]));
fout.close();
return 0;
}