Cod sursa(job #2809690)

Utilizator flaviaelenaflavia tufan flaviaelena Data 27 noiembrie 2021 13:29:19
Problema Loto Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
vector <int> vs;
int v[105];
int main()
{
    bool ok=0;
    int n,s,i,j,k,st,dr;
    fin>>n>>s;
    for(i=1;i<=n;++i){
        fin>>v[i];
    }
    for(i=1;i<=n;++i){
        for(j=1;j<=n;++j){
            for(k=1;k<=n;++k){
                vs.push_back(v[i]+v[j]+v[k]);
            }
        }
    }
    sort(vs.begin(),vs.end());
    st=0;
    dr=vs.size()-1;
    while(st<=dr){
        if(s==vs[st]+vs[dr]){
            ok=1;
            break;
        } else if(s<vs[st]+vs[dr]){
            --dr;
        } else {
            ++st;
        }
    }
    if(ok==0){
        fout<<"-1";
    } else {
        for(i=1;i<=n;++i){
            for(j=1;j<=n;++j){
                for(k=1;k<=n;++k){
                    if(v[i]+v[j]+v[k]==vs[st]){
                        fout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
                        i=j=k=n+1;
                    }
                }
            }
        }
        for(i=1;i<=n;++i){
            for(j=1;j<=n;++j){
                for(k=1;k<=n;++k){
                    if(v[i]+v[j]+v[k]==vs[dr]){
                        fout<<v[i]<<" "<<v[j]<<" "<<v[k]<<" ";
                        i=j=k=n+1;
                    }
                }
            }
        }
    }
    return 0;
}