Pagini recente » Cod sursa (job #2571895) | Cod sursa (job #696466) | Cod sursa (job #3131148) | Cod sursa (job #525396) | Cod sursa (job #1790803)
#include <bits/stdc++.h>
#define INF 200000000
using namespace std;
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
int D[120010], N, G, fr[250], x;
int solutionG, nr;
int main()
{
fin >> N >> G;
for(int i = 1; i <= G; i ++)
{
D[i] = INF;
}
for(int i = 1; i <= N; i ++)
{
fin >> x;
fr[x] ++;
}
for(int i = 200; i >= 1; i --)
{
if(fr[i] == 0)
{
continue;
}
for(int j = G; j >= 0; j --)
{
if(D[j] != INF)
{
for(int k = 1; k <= fr[i] && j + i * k <= G; k ++)
{
if(D[j + i * k] == INF)
D[j + i * k] = D[j] + k;
}
}
}
}
for(int i = G; i >= 1; i --)
{
if(D[i] != INF)
{
solutionG = i;
nr = D[i];
break;
}
}
fout << solutionG << " " << nr << '\n';
return 0;
}