Cod sursa(job #2421732)

Utilizator AlexiaPaunescu100Alexia Paunescu AlexiaPaunescu100 Data 15 mai 2019 21:52:57
Problema Loto Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.4 kb
#include <iostream>
#include <fstream>
#include <algorithm>
 
using namespace std;
 
ifstream fin ("loto.in");
ofstream fout ("loto.out");
 
struct st{
      int summ;
      int a;
      int b;
      int c;
};
 
int cmp(const st &x, const st &y){
      return x.summ < y.summ;
}
 
st s[1000001];
 
int n, suma, v[101], l, x, st, dr, mid;
 
int main (){
 
      fin>>n;
      fin>>suma;
 
      for(int i=1; i<=n; i++)
            fin>>v[i];
 
      for(int i=1; i<=n; i++)
            for(int j=i; j<=n; j++)
                  for(int k=j; k<=n; k++){
                        l++;
                        s[l].summ=v[i] + v[j] + v[k];
                        s[l].a=v[i];
                        s[l].b=v[j];
                        s[l].c=v[k];
                  }
 
      sort(s+1, s+1+l, cmp);
 
 
      for(int i=1; i<=l; i++){
            x=suma - s[i].summ;
 
            st=1;
            dr=l;
            while(st <= dr){
                  mid=(st+dr)/2;
 
                  if(s[mid].summ == x){
                        fout<<s[mid].a<<" "<<s[mid].b<<" "<<s[mid].c<<" "<<s[i].a<<" "<<s[i].b<<" "<<s[i].c;
                        return 0;
                  }
 
                  if(s[mid].summ > x)
                        dr=mid-1;
                  else
                        st=mid+1;
            }
      }
 
      fout<<-1;
 
      return 0;
}