Pagini recente » Cod sursa (job #3174193) | Cod sursa (job #1833159) | Cod sursa (job #1318822) | Cod sursa (job #1091461) | Cod sursa (job #820608)
Cod sursa(job #820608)
#include<fstream>
#define inf 100000
#define nmax 100009
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct produs{int p, e;};
produs T[5008];
int N, E;
int sum[nmax];
void read()
{
fin >>N>>E;
for(int i = 1; i <= N; i++)
fin >>T[i].e >> T[i].p;
}
void solve()
{
for(int i = 0 ;i <=nmax ; i++)
sum[i] = -inf;
sum[0] = 0;
for(int i = 1; i <= N; i++)
{
for(int j = nmax - T[i].e - 1; j >= 0 ; --j)
{
if(sum[j] != -inf && sum[j + T[i].e] < sum[j] + T[i].p)
sum[j + T[i].e] = sum[j] + T[i].p;
}
}
}
int main()
{
read();
solve();
int p_max = inf;
for(int i = E; i <= nmax - 1; i++)
if(p_max > sum[i] && sum[i] != -inf)
p_max = sum[i];
fout << p_max <<'\n' ;
fin.close();
return 0;
}