Cod sursa(job #774454)
Utilizator | Data | 4 august 2012 22:24:54 | |
---|---|---|---|
Problema | Ghiozdan | Scor | 36 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <fstream>
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int b[75001];
int main()
{
int n,G;
f>>n>>G;
int i,p,j,smax=0,w[G],nmin;
f>>w[0]; b[w[0]]=1; smax=w[0];
for(i=1;i<n;i++)
{
f>>w[i];
for(j=G-w[i];j>=0;j--)
{
if((b[j]||j==0) && j+w[i]<=G)
{
if(b[j+w[i]])
{
if (b[j]+1<b[j+w[i]])
{
b[j+w[i]]=b[j]+1;
}
else 1;
}
else b[j+w[i]]=b[j]+1;
}
}
}
for(i=1;i<=G;i++) if(b[i] && smax<i) smax=i;
g<<smax<<' '<<b[smax]<<endl;
}