Cod sursa(job #3220354)
Utilizator | Andrei Gospodaru andreigspd | Data | 3 aprilie 2024 12:36:05 |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,S,k,d[100001],w[100001],p[100001],inf=1e7;
int main(){
fin>>n>>S;
for(int i=1;i<=n;i++)fin>>w[i]>>p[i];
d[0]=0;
for(int i=1;i<=S;i++)d[i]=inf;
for(int i=1;i<=n;i++){
for(int j=S;j>=0;j--){
k=j+w[i];
if(k>=S)k=S;
d[k]=min(d[k],d[j]+p[i]);
}
}
if(d[S]!=inf)fout<<d[S];
else fout<<-1;
}