Cod sursa(job #588308)

Utilizator predator5047Butiu Alexandru Octavian predator5047 Data 7 mai 2011 17:41:21
Problema Loto Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.48 kb
#include <cstdio>
#include <algorithm>
FILE *g=fopen("loto.in","r");
FILE *z=fopen("loto.out","w");
using namespace std;
int v[111];
void qsort(int l,int r)
{
    int i=l,j=r,t;
    t=v[(l+r)/2];
    while(i<=j)
    {
        while(v[i]<t)
        i++;
        while(v[j]>t)
        j--;
        if(i<=j)
        {
            swap(v[i],v[j]);
            i++;
            j--;
        }
    }
    if(l<j)
    qsort(l,j);
    if(i<r)
    qsort(i,r);
}
int main()
{
    int n,s,max=0;
    fscanf(g,"%d%d",&n,&s);
    for(int i=1;i<=n;i++)
    {
        fscanf(g,"%d",&v[i]);
        if(max<v[i])
        max=v[i];
    }
    if(max*6<s)
    {
        fprintf(z,"-1");
        return 0;
    }
    qsort(1,n);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;(j<=n and v[i]+v[j]<s);j++)
        {
            for(int l=1;l<=n and v[i]+v[j]+v[l]<s;l++)
            {
                for(int p=1;p<=n and v[i]+v[j]+v[l]+v[p]<s;p++)
                {
                    for(int o=1;o<=n and v[i]+v[j]+v[l]+v[p]+v[o]<s;o++)
                    {
                        for(int u=1;u<=n;u++)
                        {
                            if(v[i]+v[j]+v[l]+v[p]+v[o]+v[u]==s)
                            {
                                fprintf(z,"%d %d %d %d %d %d",v[i],v[j],v[l],v[p],v[o],v[u]);
                                return 0;
                            }
                        }
                    }
                }
            }
        }
    }
    fprintf(z,"-1");
    return 0;
}