Cod sursa(job #2405943)

Utilizator mihnea.anghelMihnea Anghel mihnea.anghel Data 15 aprilie 2019 10:45:33
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.25 kb
#include <fstream>
#include <algorithm>

using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");

struct potae{
    int a,b,c,sum;
} t[1000009];

bool cmp (const potae a, const potae b){
    return a.sum<b.sum;
}

int n,s,i,j,k,val,st,dr,mid, v[100], dim;

int main()
{
    f>>n>>s;
    for ( i=1; i <= n; i++ ) f>>v[i];
    for ( i=1; i <= n; i++)
        for ( j=i; j <= n; j++)
            for ( k=j; k <= n; k++){
                t[++dim].a = v[i];
                t[dim].b = v[j];
                t[dim].c = v[k];
                t[dim].sum = v[i] + v[j] + v[k];
            }
    sort (t+1, t+dim+1, cmp);

    for(i=1; i<=n; i++)
        for ( j=i; j <= n; j++)
            for ( k=j; k <= n; k++){
                val = s - v[i] - v[j] - v[k];
                st=1; dr=dim;
                while ( st <= dr ){
                    mid = st + ( dr - st )/2;
                    if ( t[mid].sum==val){
                        g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<t[mid].a<<" "<<t[mid].b<<" "<<t[mid].c;
                        return 0;
                    }
                    if ( t[mid].sum > val ) dr = mid - 1 ;
                    else st = mid + 1;
                }
            }
    g<<-1;
    return 0;
}