Cod sursa(job #1722102)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 27 iunie 2016 12:35:54
Problema Ghiozdan Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <cstdio>
#include <iostream>
#include <algorithm>

using namespace std;
int w[20001],p[2000001],v[20001];
int main()
{
    FILE *fin=fopen ("ghiozdan.in","r");
    FILE *fout=fopen ("ghiozdan.out","w");
    int n,g,s,i,j,x,elem;
    fscanf (fin,"%d%d",&n,&g);
    s=0;
    for (i=1;i<=n;i++)
        fscanf (fin,"%d",&v[i]);
    sort (v+1,v+n+1);
    for (i=1;i<=n;i++){
        x=v[i];
        s+=x;
        for (j=s;j>=x;j--){
            if (p[j-x]!=0 && p[j]==0)
                p[j]=x;
        }
        p[x]=x;
    }
    i=g;
    while (p[i]==0)
        i--;
    fprintf (fout,"%d ",i);
    s=i;
    elem=0;
    while (p[i]!=0){
        s-=p[i];
        w[++elem]=p[i];
        i=s;
    }
    fprintf (fout,"%d\n",elem);
    for (i=1;i<=elem;i++)
        fprintf (fout,"%d\n",w[i]);
    return 0;
}