Cod sursa(job #304618)

Utilizator cosserBula Ionut cosser Data 14 aprilie 2009 22:10:20
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.16 kb
#include<iostream>
#include<fstream>

using namespace std;


long b[6][105],a[105];

int main()
{
ifstream f ("loto.in");
ofstream o ("loto.out");

long n,i,j,k=0,S,p=1,kk=0,l=1,aux=0;


f>>n>>S;


 if(S%2==0)
        l=4;
 if(S%2!=0)
        l=5;

    for(i=1;i<=n;i++)
                {
                    f>>a[i];
                    if(S%a[i]==0 && S != a[i] && a[i]!=1)
                                            aux=1;

                }


    for(i=1;i<=6 && p==1;i++)
        for(j=1;j<=n && p==1;j++)
           {

               b[i][j]=a[j]*i;
                if(i==6 && b[i][j]==S)
                            p=0,k=j,kk=6,l=6; //in acest caz afisam a [k] de l ori si a[kk] de 6-l adica 0 ori
           }



    for(i=1;i<=6 && p==1;i++)
        for(j=1;j<=n && p==1;j++)
                if(b[l][i]+b[6-l][j]==S && b[l][i] !=0 && b[6-l][j]!=0)
                                    {
                                        p=0;
                                        kk=j;
                                        k=i;
                                    }

    for(i=1;i<=6 && p==1 && aux==1;i++)
        for(j=1;j<=n && p==1;j++)
                if(b[3][i]+b[3][j]==S && b[3][i] !=0 && b[3][j]!=0)
                                    {
                                        p=0;
                                        l=3;
                                        kk=j;
                                        k=i;
                                    }

if(p)
 for(i=n;i>=1 && p==1;i--)
    for(j=n;j>=1 && p==1;j--)
        for(int y=n;y>=1 && p==1;y--)
            for(int e=n;e>=1 && p==1;e--)
                for(int t=n;t>=1 && p==1;t--)
                    for(int u=n;u>=1 && p==1;u--)
                        if(a[i]+a[j]+a[y]+a[e]+a[t]+a[u]==S)
                           { o<<a[i]<<" "<<a[j]<<" "<<a[y]<<" "<<a[e]<<" "<<a[t]<<" "<<a[u];p=2;}

if(!p)
 {
     for(i=1;i<=l;i++)
               o<<a[k]<<" ";
     for(i=1;i<=6-l;i++)
               o<<a[kk]<<" ";
 }
else
    if(p==1)
        o<<-1;


//cout<<l<<" "<<k<<" si "<<6-l<<" "<<kk<<endl;
//cout<<b[l][k]<<" "<<b[6-l][kk];



return 0;}