Cod sursa(job #2407751)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 17 aprilie 2019 10:56:26
Problema Loto Scor 45
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");
int v[101],m,n,S,s,i,j,k,st,dr,mid,p,K,x,ok;
struct meme{
    long long S;
    int i,j,k;
}a[1000001];
int cmp(meme a,meme b){
    return a.S<b.S;
}
int main()
{   f>>n>>S;
    K=0;
    for(i=1;i<=n;i++){
        f>>x;
        ok=1;
        for(j=1;j<=K;j++)
            if(v[j]==x)
                ok=0;
        if(ok==1)
            v[++K]=x;
    }
    m=0;
    for(i=1;i<=K;i++){
        for(j=1;j<=K;j++){
            for(k=1;k<=K;k++){
                a[++m].S=v[i]+v[j]+v[k];
                a[m].i=v[i];
                a[m].j=v[j];
                a[m].k=v[k];
            }
        }
    }
    sort(a+1,a+m+1,cmp);
    for(i=1;i<=m;i++){
        s=S-a[i].S;
        st=1;dr=m;p=0;
        while(st<=dr){
            mid=(st+dr)/2;
            if(a[mid].S<s)
                st=mid+1;
            else if(a[mid].S>s)
                dr=mid-1;
            else{
                p=mid;
                break;
            }
        }
        if(p!=0){
            g<<a[i].i<<' '<<a[i].j<<' '<<a[i].k<<' '<<a[p].i<<' '<<a[p].j<<' '<<a[p].k;
            return 0;
        }
    }
    g<<-1;
    return 0;
}