Cod sursa(job #3307119)

Utilizator FH26Haj Filip FH26 Data 17 august 2025 20:52:32
Problema Loto Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb

#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
struct com {long long sum;int a,b,c;};

bool comp(const com &a,const com &b) {
    return a.sum<b.sum;}
    
int main()
{int n,s;
fin>>n>>s;
vector<long int> v(n);
 vector<com> sums;
for(int i=0;i<n;i++)
    fin>>v[i];

for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)
        for(int z=0;z<n;z++)
           
            sums.push_back({v[i] + v[j] + v[z], (int)v[i], (int)v[j], (int)v[z]});
          
sort(sums.begin(),sums.end(),comp);
/*for(int i=0;i<(int)sums.size();i++)
    cout<<sums[i].sum<<" ";*/
for(int i=0;i<(int)sums.size();i++) {
int st=0,dr=sums.size()-1;
while(st<=dr) {
    long long c=s-sums[i].sum;
    int m=(st+dr)/2;
    if(sums[m].sum==c) {fout<<sums[i].a<<" "<<sums[i].b<<" "<<sums[i].c<<" "<<sums[m].a<<" "<<sums[m].b<<" "<<sums[m].c;return 0;}   
    if(sums[m].sum<s-(int)sums[i].sum) st=m+1;
            else dr=m-1;
}
}
fout<<-1;return 0;
}