Cod sursa(job #2498924)
Utilizator | Ionita Andrei sygAndreiIonita | Data | 24 noiembrie 2019 20:16:18 |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <fstream>
using namespace std;
const int mare=2e9;
int v[1000001];
ifstream in ("energii.in");
ofstream out ("energii.out");
int main()
{
int n,m,e,c;
in>>n>>m;
for (int i=1;i<=m;i++)
v[i]=mare;
v[0]=0;
for (int i=1;i<=n;i++)
{
in>>e>>c;
for (int j=m;j>=0;j--)
{
if (v[j]!=mare&&j+e<=m)
v[j+e]=min(v[j]+c,v[j+e]);
else if (v[j]!=mare&&j+e>m)
v[m]=min(v[m],v[j]+c);
}
}
if (v[m]==mare)
out<<-1;
else
out<<v[m];
return 0;
}