Pagini recente » Cod sursa (job #1898733) | Cod sursa (job #551617) | Cod sursa (job #3244895) | Cod sursa (job #1605847) | Cod sursa (job #2849501)
#include <fstream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
vector <int> out; map <int, int> m;
int n, g, i, j, gr[20001], d[75001], poz[75001];
int main()
{
fin >> n >> g;
for (i = 1; i <= n; i++)
{
fin >> gr[i];
}
for (i = 1; i <= g; i++)
d[i] = 1e8;
for (i = 1; i <= n; i++)
{
int ok = 1;
for (j = g; j >= gr[i]; j--)
{
if (d[j] > d[j-gr[i]]+1)
{
ok = 0;
d[j] = d[j-gr[i]]+1;
}
if (ok == 0)
break;
}
}
for (i = g; i > 0; i--)
{
if (d[i] != 1e8)
{
fout << i << " " << d[i] << "\n";
break;
}
}
// while (i > 0)
// {
// j = i;
// i = poz[i];
// out.push_back(j-i);
// }
// sort (out.begin(), out.end());
// for (i = 0; i < out.size(); i++)
// {
// fout << out[i] << "\n";
// }
return 0;
}