Cod sursa(job #2177890)

Utilizator AndreiSorin26012001Cirpici Andrei Sorin AndreiSorin26012001 Data 18 martie 2018 21:36:53
Problema Loto Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("loto.in");
ofstream out("loto.out");

struct str
{
    int suma;
    int nr1, nr2, nr3;
}v[1000005];

int n, S, nr[105];
int p, poz, st, dr;

bool cmp( str a, str b )
{
    return (a.suma < b.suma);
}

int main(){

   in>>n>>S;
   for( int i = 1; i <= n; i++ )
        in>>nr[i];

   for( int i = 1; i <= n; i++ )
        for( int j = 1; j <= n; j++ )
            for( int k = 1; k <= n; k++ )
            {
                p++;
                v[p] = { nr[i] + nr[j] + nr[k], nr[i], nr[j], nr[k] };
            }

    sort( v + 1, v + p + 1, cmp  );

   int st = 1, dr = p;
   while( st <= dr )
   {
       while( v[st].suma + v[dr].suma > S )
            dr--;

       if( v[st].suma + v[dr].suma == S )
       {
            out<<v[st].nr1<<" "<<v[st].nr2<<" "<<v[st].nr3<<" ";
            out<<v[dr].nr1<<" "<<v[dr].nr2<<" "<<v[dr].nr3;
            return 0;
       }

       st++;
   }


    out<<-1;

   return 0;
}