Cod sursa(job #1415402)

Utilizator andrei124Andrei Roman andrei124 Data 4 aprilie 2015 15:29:47
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
int v[101],w[1000001];

bool cautbin(int x)
{
    int pas=1<<19,i=0;
    for(i=0;pas>0;pas=pas>>1)
        if(i+pas<=x&&w[i+pas]<=x)i+=pas;
    return w[i]==x;
}


int main()
{
    int n,i,s,a,b,c,k=1,j,x=1,z=0,i1,i2,i3;
    in>>n>>s;
    for(i=1;i<=n;i++)in>>v[i];
    i=1;
    for(a=1;a<=n;a++)
        for(b=1;b<=n;b++)
          for(c=1;c<=n;c++)
            {
                ++z;
                w[z]=v[a]+v[b]+v[c];
            }
    sort(w+1,w+z+1);

    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
           for(k=1;k<=n;k++)
           {
               x=s-v[i]-v[k]-v[j];
               if(cautbin(x)==true)
               {
                   out<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
                   for(i1=1;i1<=n;i1++)
                    for(i2=1;i2<=n;i2++)
                     for(i3=1;i3<=n;i3++)
                       if(v[i1]+v[i2]+v[i3]==x)
                   {
                       out<<v[i1]<<" "<<v[i2]<<" "<<v[i3];
                       return 0;
                   }
               }
           }

    out<<-1;
    return 0;
}