Cod sursa(job #2208370)
Utilizator | Data | 29 mai 2018 14:00:32 | |
---|---|---|---|
Problema | Energii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream go("energii.out");
const int INF=1<<30;
int m[1005][3],i,j,g,w,dp[1005];
int main()
{
f>>g>>w;
for(i=1;i<=g;i++)
{
f>>m[i][1];
f>>m[i][2];
}
for(i=1;i<=2*w;i++)
dp[i]=INF;
for(i=1;i<=g;i++)
for(j=2*w;j>=0;j--)
{
if(m[i][1]<=j)
dp[j]=min(dp[j],dp[j-m[i][1]]+m[i][2]);
}
int minn=INF;
for(int i=w;i<=2*w;i++)
if(dp[i]<minn)
minn=dp[i];
if(minn==INF)
go<<-1;
else go<<minn;
return 0;
}