Cod sursa(job #3252899)
Utilizator | Data | 31 octombrie 2024 14:31:23 | |
---|---|---|---|
Problema | Energii | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int dp[10005], sol=INT_MAX;
int main()
{
int n, w, e, c;
fin >> n >> w;
for(int i=0; i<n; i++) {
fin >> e >> c;
for(int i=10000; i>=e; i--) {
if(dp[i-e]!=0 || i-e==0) {
dp[i]=dp[i-e]+c;
}
}
}
for(int i=w; i<10001; i++) {
if(dp[i]>0) {
sol=min(sol, dp[i]);
}
}
if(sol!=INT_MAX) {
fout << sol;
} else {
fout << "-1";
}
return 0;
}