Pagini recente » Cod sursa (job #1369792) | Cod sursa (job #2448896) | Istoria paginii utilizator/nicolaeculda | Cod sursa (job #2495983) | Cod sursa (job #846518)
Cod sursa(job #846518)
#include<fstream>
#include<vector>
#include<algorithm>
#define MA 1999999999
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int N[76000],n,G,D[76000],i,v[21000],j;
int main ()
{
f>>n>>G;
for(i=1;i<=G;++i)
D[i]=MA;
for(i=1;i<=n;++i)
{
f>>v[i];
}
sort(v+1,v+n+1);
for(i=n;i>=1;--i)
{
if(v[i]<=G)
for(j=G-v[i];j>=0;--j)
{
if(D[j]+v[i]<=D[j+v[i]])
{
D[j+v[i]]=D[j]+1;
N[j+v[i]]=j;
}
}
}
for(i=G;i>=1;i--)
{
if(D[i]!=MA)
{
g<<i<<" "<<D[i]<<"\n";
g<<i-N[i]<<"\n";
while(N[i])
{
i=N[i];
g<<i-N[i]<<"\n";
}
return 0;
}
}
}