Pagini recente » Istoria paginii runda/redsnow_3/clasament | Cod sursa (job #2927239) | Cod sursa (job #1132343) | Cod sursa (job #970164) | Cod sursa (job #433344)
Cod sursa(job #433344)
#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;
for ( i = 1; i <= n; i++)
a[c[i].e] = c[i].v;
a[0] = 0;
for ( i = c[1].e; i <= s; i++)
for ( j = 1; j <= n; j++)
if ( a[i] != INF)
if ( a[i+c[j].e] > a[i] + c[j].v)
{
a[i+c[j].e] = a[i] + c[j].v;
if ( i + c[j].e > imax) imax = i + c[j].e;
}
long long min = a[s];
for ( i = s + 1; i <= imax; i++)
if ( a[i] < min) min = a[i];
if ( a[s] == INF) fout << '-1' << '\n';
else fout << min << '\n';
fout.close();
return 0;
}