Pagini recente » Cod sursa (job #2325069) | Cod sursa (job #176963) | Cod sursa (job #1776970) | Cod sursa (job #1837332) | Cod sursa (job #2440772)
#include <iostream>
#include <fstream>
#define MaxG 1002
#define MaxW 5002
#define undefined 0
#define LARGE 10000000
using namespace std;
ifstream f("energii.in");
ofstream fout("energii.out");
typedef long long ll;
int g,w;
ll e[MaxG],c[MaxW];
ll m[MaxG][MaxW];
int main()
{
f>>g>>w;
for(int i=1;i<=g;i++)
f>>e[i]>>c[i];
for(int i=1;i<=g;i++)
for(int j=1;j<=w;j++)
{
int rez,rez1,rez2;
rez1 = (m[i-1][j]==undefined? LARGE : m[i-1][j]); ///rezultatul daca nu punem e[i]
if(j<=e[i])
rez2 = c[i];
else
{
if(m[i-1][j-e[i]] == undefined)
break;
rez2 = m[i-1][j-e[i]] + c[i];
}
m[i][j] = min(rez1,rez2);
}
if(m[g][w]==undefined)
fout<<-1;
else
fout<<m[g][w];
f.close();
fout.close();
for(int i=1;i<=g;i++)
{
for(int j=1;j<=w;j++)
cout<<m[i][j]<<' ';
cout<<endl;
}
return 0;
}