Pagini recente » Cod sursa (job #834968) | Cod sursa (job #774112) | Cod sursa (job #2804613) | Cod sursa (job #1516659) | Cod sursa (job #914835)
Cod sursa(job #914835)
#include<cstdio>
#include<algorithm>
using namespace std;
const int gmax= 205;
const int GMAX = 75005;
int V[gmax],n,G,i,j,k,x,DP[GMAX],BACK[GMAX],g;
int main()
{
freopen("ghiozdan.in","r",stdin);
freopen("ghiozdan.out","w",stdout);
scanf("%d%d",&n,&G);
for(i=1;i<=n;i++) {scanf("%d",&x);V[x]++; g=max(g,x);}
DP[0]=1; //scadem 1 la sfarsit
for(i=g;i;i--)
if(V[i])
for(j=G-i;j>=0;j--)
if(DP[j])
for(k=1;k<=V[i] && j+k*i<=G && !DP[j+k*i];k++)
{
DP[j+k*i]=DP[j]+k;
BACK[j+k*i]=i;
}
for(i=G;i;i--)
if(DP[i])
{
printf("%d %d\n",i,DP[i]-1);
//printf("%d\n",BACK[i]);
//i-=BACK[i];
//while(i)
//{
// printf("%d\n",BACK[i]);
// i-=BACK[i];
//}
return 0;
}
return 0;
}