Cod sursa(job #874594)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 8 februarie 2013 22:22:26
Problema Ghiozdan Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int n,g,v[75005],i,a,j;
vector<int> p[75005];
int main()
{
    freopen("ghiozdan.in","r",stdin);
    freopen("ghiozdan.out","w",stdout);
    scanf("%d%d",&n,&g);
    for(i=1;i<=75000;i++) v[i]=20100;
    v[0]=1;
    for(j=1;j<=n;j++)
    {
        scanf("%d",&a);
        for(i=g;i>=a;i--)
        {
            if(v[i-a]+1<v[i])
            {
                v[i]=v[i-a]+1;
                p[i]=p[i-a];
                p[i].push_back(a);
            }
        }
    }
    for(i=g;i>=0;i--) if(v[i]<20100) break;
    printf("%d %d\n",i,v[i]-1);
    sort(p[i].begin(),p[i].end());
    a=p[i].size();
    for(j=0;j<a;j++) printf("%d\n",p[i][j]);
    return 0;
}