Mai intai trebuie sa te autentifici.
Cod sursa(job #1247240)
| Utilizator | Data | 22 octombrie 2014 14:40:37 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <cstdio>
#include <algorithm>
#define Nmax 1005
#define Wmax 5005
#define INF 2000000000
using namespace std;
int dp[Nmax][Wmax],G[Nmax],C[Nmax];
int main()
{
int i,j,N,W;
freopen ("energii.in","r",stdin);
freopen ("energii.out","w",stdout);
scanf("%d%d", &N,&W);
for(i=1;i<=N;++i)
scanf("%d%d", &G[i],&C[i]);
for(i=1;i<=W;++i) dp[0][i]=INF;
for(i=1;i<=N;++i)
for(j=0;j<=W;++j)
dp[i][j]=min(dp[i-1][j],dp[i-1][max(0,j-G[i])]+C[i]);
if(dp[N][W]==INF) printf("-1\n");
else printf("%d\n", dp[N][W]);
return 0;
}
