Cod sursa(job #2207886)
Utilizator | Data | 27 mai 2018 10:43:36 | |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
#define MAX 1e9
#define N 10000
using namespace std;
int dp[N+5];
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
int n,G;
f>>n>>G;
for(int i=1;i<=N;i++)
dp[i]=MAX;
for(int i=1;i<=n;i++)
{
int e,cost;
f>>e>>cost;
for(int j=G;j>=1;j--)
{
if(dp[j]!=MAX)
dp[j+e]=min(dp[j+e],dp[j]+cost);
}
dp[e]=min(dp[e],cost);
}
int mini=MAX;
for(int i=G;i<=N;i++)
mini=min(mini,dp[i]);
if(mini==MAX)
g<<-1;
else
g<<mini;
return 0;
}