Cod sursa(job #1540722)

Utilizator Marius7122FMI Ciltea Marian Marius7122 Data 3 decembrie 2015 09:34:41
Problema Ghiozdan Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <stdio.h>
unsigned n,g,i,j,q,v[201],x,sol[75001],ob,best=20001,gmax,dist;

void afis()
{
    int i;
    for(i=1;i<=g;i++)
        printf("%u ",sol[i]);
    printf("\n");
}

int main()
{
    FILE *f1,*f2;
    f1=fopen("ghiozdan.in","r");
    f2=fopen("ghiozdan.out","w");
    fscanf(f1,"%u%u",&n,&g);
    for(i=0;i<n;i++)
    {
        fscanf(f1,"%u",&x);
        v[x]++;
    }
    for(q=200;q>0;q--)
    {
        x=q;
        ob=1;
        while(v[q] && x<=g)
        {
            if(sol[x]>ob || !sol[x])
            {
                sol[x]=ob;
            }
            else
                ob=sol[x];
            v[q]--;
            //ob=sol[x-q]+1;
            ob++;
            x+=q;
        }
    }
    for(i=g;i>0;i--)
        if(sol[i])
        {
            best=sol[i];
            gmax=i;
            break;
        }
    fprintf(f2,"%u %u\n",gmax,best);
    q=1;
    dist=1;
    for(i=1;i<=g && q<=best;i++ , dist++)
        if(sol[i]==q)
        {
            q++;
            fprintf(f2,"%u\n",dist);
            dist=0;
        }
    return 0;
}