Cod sursa(job #902003)
| Utilizator | Data | 1 martie 2013 12:31:43 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
using namespace std;
#include<iostream>
#include<fstream>
ifstream f("energii.in");
ofstream g("energii.out");
int ga,n;
int wg[5001],pg[5001];
int dp[10000];
int main()
{
f>>n;
f>>ga;
int i;
for(i=1; i<=n; i++)
{
f>>wg[i]>>pg[i];
}
int s=0;
bool ok=true;
for(i = 1; i <= n && ok; ++i)
for( int j=ga-wg[i]; j >= 0; --j)
{
if( dp[j+wg[i]]<dp[j]+pg[i] )
{
dp[j+wg[i]] = dp[j] + pg[i];
if( dp[j+wg[i]] > s)
{
s=dp[j+wg[i]];
if(s>ga)
{ ok=false; break; }
}
}
}
g<<s;
}