Cod sursa(job #2411852)
| Utilizator | Data | 21 aprilie 2019 13:06:12 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int inf = 1<<30;
int v[1000006];
int gc[10005];
int ge[10005];
int main()
{
int n,m,i,j,sum = 0;
fin>>n>>m;
for(i = 1; i <= n; i++){
fin>>ge[i]>>gc[i];
sum+=ge[i];
}
if(sum < m){
fout<<"-1"<<endl;
return 0;
}
for(i = 1; i <= sum; i++){
v[i] = inf;
}
for(i = 1; i <= n; i++){
for(j = m; j >= 0; j--){
v[min(m,j+ge[i])] = min(v[min(m,j+ge[i])],v[j] + gc[i]);
}
}
fout<<v[m]<<endl;
return 0;
}
