Cod sursa(job #2402540)

Utilizator AndreibatmanAndrei Croitoriu Andreibatman Data 10 aprilie 2019 19:38:20
Problema Loto Scor 35
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,s,v[110],nr,i,j,k;
struct ceva
{
    int s;
    int x1,x2,x3;
} x[100010];
bool comp(ceva a,ceva b)
{
    return a.s<b.s;
}
int main()
{
    fin>>n>>s;
    for(i=1; i<=n; i++)
        fin>>v[i];
    for(i=1; i<=n; i++)
        for(j=i; j<=n; j++)
            for(k=j; k<=n; k++)
            {
                x[++nr].s=v[i]+v[j]+v[k];
                x[nr].x1=v[i];
                x[nr].x2=v[j];
                x[nr].x3=v[k];
            }
    sort(x+1,x+nr+1,comp);
    for(int i=1; i<=nr; i++)
    {
        int s1=s-x[i].s;
        int st=1,dr=nr;
        while(st<=dr)
        {
            int mij=(st+dr)/2;
            if(x[mij].s==s1)
            {
                fout<<x[i].x1<<" "<<x[i].x2<<" "<<x[i].x3<<" ";
                fout<<x[mij].x1<<" "<<x[mij].x2<<" "<<x[mij].x3<<" ";
                return 0;
            }
            if(x[mij].s<s1)
                st=mij+1;
            else dr=mij-1;
        }
    }
    fout<<-1<<'\n';
    return 0;
}