Cod sursa(job #1040896)

Utilizator NitaMihaitavoidcube NitaMihaita Data 25 noiembrie 2013 03:46:10
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
long long v[101],z[101];
int n,l;
void Ordoneaza(int s,int d)
{
    if(s==d) return ;
    int i=s,m=(s+d)>>1,j=m+1,k=s;
    Ordoneaza(s,m);
    Ordoneaza(m+1,d);
    for(;i<=m || j<=d;)
        if(j>d || (i<=m && v[i]<v[j]))
            z[k++]=v[i++];
        else z[k++]=v[j++];
    for(k=s;k<=d;++k)
        v[k]=z[k];
}
int main()
{
    int q,w,e,r,t,y;
    long long s;
    f>>n>>s;
    for(q=1;q<=n;++q)f>>v[q];
    Ordoneaza(1,n);
    for(q=n;q>=1;--q)
        if(s>=v[q])
        for(w=n;w>=1;--w)
            if(s>=v[q]+v[w])
            for(e=n;e>=1;--e)
                if(s>=v[q]+v[w]+v[e])
                for(r=n;r>=1;--r)
                    if(s>=v[q]+v[w]+v[e]+v[r])
                    for(t=n;t>=1;--t)
                        if(s>=v[q]+v[w]+v[e]+v[r]+v[t])
                        for(y=n;y>=1;--y)
                            if(v[q]+v[w]+v[e]+v[r]+v[t]+v[y]==s)
                            {
                                g<<v[q]<<" "<<v[w]<<" "<<v[e]<<" "<<v[r]<<" "<<v[t]<<" "<<v[y]<<"\n";
                                f.close();
                                g.close();
                                return 0;
                            }
    g<<"-1\n";
    f.close();
    g.close();
    return 0;
}