Cod sursa(job #1308727)
| Utilizator | Data | 4 ianuarie 2015 16:35:48 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.4 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int e[1005],c[1005];
vector<int> d;
int main() {
int n,s;
in>>n>>s;
for(int i=1;i<=n;i++)in>>e[i]>>c[i];
d=vector<int>(s+1,1000005);
d[0]=0;
for(int i=1;i<=n;i++)
for(int j=s;j>=0;j--)
if(j<=e[i])d[j]=min(d[j],c[i]);
else d[j]=min(d[j],d[j-e[i]]+c[i]);
out<<(d[s]==1000005 ? -1 : d[s]);
return 0;
}
