Mai intai trebuie sa te autentifici.
Cod sursa(job #3135286)
| Utilizator | Data | 2 iunie 2023 15:30:51 | |
|---|---|---|---|
| Problema | Energii | Scor | 5 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <bits/stdc++.h>
#define mod 666013
using namespace std;
int n,g,w[10005],p[10005],dp[10005];
ifstream fin("energii.in");
ofstream fout("energii.out");
int rucsac(int n, int g){
for (int i=1;i<=n;i++){
for (int j=g;j>=w[i];j--){
dp[j]=max(dp[j],dp[j-w[i]]+p[i]);
}
}
int rez=0;
for (int j=0;j<=g;j++)
rez=max(rez,dp[j]);
return rez;
}
int main(){
fin>>n>>g;
int s=0;
for (int i=1;i<=n;i++){
fin>>w[i]>>p[i];
s+=w[i];
}
int rez=999999999;
if (s<g) fout<<-1;
else{
rez=min(rez, rucsac(n,g));
fout<<rez;
}
}