Pagini recente » Cod sursa (job #1367096) | Borderou de evaluare (job #1170022) | Cod sursa (job #3221416) | Cod sursa (job #2248378) | Cod sursa (job #433363)
Cod sursa(job #433363)
#include <fstream>
#include <vector>
#define INF 20002
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct {
int e;
int v;
}c[INF];
long a[INF];
long n, s;
int i, j, imax;
int main()
{
fin >> n >> s;
for ( i = 1; i <= n; i++)
fin >> c[i].e >> c[i].v;
fin.close();
for ( i = 0; i <= s; i++)
a[i] = INF;
a[c[1].e] = c[1].v;
a[0] = 0;
for ( j = 1; j <= n; j++)
for ( i = 0; i <= s; i++)
if ( a[i] != INF)
if ( i + c[j].e < s)
{
if ( a[i+c[j].e] > a[i] + c[j].v)
a[i+c[j].e] = a[i] + c[j].v;
}
else if ( i + c[j].e >= s)
if ( a[s] > a[i+c[j].e] + c[j].v)
a[s] = a[i+c[j].e] + c[j].v;
if ( a[s] == INF) fout << '-1' << '\n';
else fout << a[s] << '\n';
fout.close();
return 0;
}