Cod sursa(job #767785)
Utilizator | Data | 14 iulie 2012 21:07:13 | |
---|---|---|---|
Problema | Ghiozdan | Scor | 42 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
#define LE 75600
#define inf 3333333
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int i,j,v[LE],num[LE],gmax,n;
int main()
{
f>>n>>gmax;
for(i=1;i<=n;++i) f>>v[i];
for(i=1;i<=gmax;++i) num[i]=inf;
for(i=1;i<=n;++i,num[v[i-1]]=1)
for(j=gmax-v[i];j>=1;--j)
if(num[j]!=inf) num[j+v[i]]=min(num[j+v[i]],num[j]+1);
for(i=gmax;i>=1;--i)
if (num[i]!=inf)
{
g<<i<<" "<<num[i];
break;
}
f.close();g.close();
return 0;
}