Cod sursa(job #2722608)

Utilizator darkeagleDaniel Popescu darkeagle Data 13 martie 2021 01:10:09
Problema Loto Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <bits/stdc++.h>
#define nmax 1000000
using namespace std;

struct timp{

int t1;
int t2;
int t3;
int t4;
} v1[nmax];

int binarysearch(timp v2[nmax], int x ,int l, int r)
{ int mid;
    mid = l + (r-l)/2;
    if(v2[mid].t1 == x)
    return mid;
    if(v2[mid].t1 < x)
    return binarysearch(v2,x,mid + 1, r);
    return binarysearch(v2,x,l,mid-1);
    return -1;
}
int n, k;
int v[101];
int main() {

    freopen("loto.in", "r", stdin);
    freopen("loto.out", "w", stdout);

cin >> n;
cin >> k;

for(int i = 1; i <= n ;i++) {
    cin >> v[i];
}
int ok = 1;
 for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= n; j++) {
            for(int k = 1; k <= n; k++)
            {
                v1[i*n*n + j*n + k].t1 = v[i] + v[j] + v[k];
                v1[i*n*n + j*n + k].t2 = v[i] ;
                v1[i*n*n + j*n + k].t3 = v[j];
                v1[i*n*n + j*n + k].t4 = v[k];
             }
        }
    }
int ok = 0;
for(int i = 1; i <= n && ok == 0; i++)
{
 if(binarysearch(v1,k-v1[i].t1, 1,n*n*n) != -1)
    {
        ok = 1;
        int e = binarysearch(v1,k-v1[i].t1, 1,n*n*n);
        cout << v1[i].t2 << " " << v1[i].t3 << " " << v1[i].t4 << " " <<v1[e].t2 << " " << v1[e].t3 << " " << v1[e].t4 ; 
    }   
}


    return 0;
}