Cod sursa(job #756076)
| Utilizator | Data | 8 iunie 2012 22:56:18 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
vector<int> a,b;int n,g;
void solve();
int main()
{
solve();
fin.close();fout.close();
return 0;
}
void solve()
{
fin>>n>>g;
int gr,pr;
fin>>gr>>pr;
a.assign(gr,0);
for (int i=gr;i<=g;i++)
a.push_back(pr);
for (int i=2;i<=n;i++)
{
b=a;fin>>gr>>pr;
for (int j=gr;j<=g;j++)
if (a[j]<b[j-gr]+pr) a[j]=b[j-gr]+pr;
}
fout<<a[g]<<'\n';
}
