Cod sursa(job #2035140)

Utilizator MoodyFaresFares Mohamad MoodyFares Data 8 octombrie 2017 22:50:28
Problema Loto Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <cstdio>
#include <set>

const int MAX_N = 100;

int v[5 + MAX_N];

int main() {
  freopen("loto.in", "r", stdin);
  freopen("loto.out", "w", stdout);
  
  int N, S;
  scanf("%d%d", &N, &S);
  for (int i = 1; i <= N; i++) {
    scanf("%d", &v[i]);
  }
  std::set<int> s;
  for (int i = 1; i <= N; i++) {
    for (int j = i; j <= N; j++) {
      for (int k = j; k <= N; k++) {
        s.insert(v[i] + v[j] + v[k]);
      }
    }
  }
  for (auto it = s.begin(); it != s.end(); it++) {
    if (s.find(S - *it) != s.end()) {
      bool ok = true;
      for (int i = 1; i <= N && ok; i++) {
        for (int j = i; j <= N && ok; j++) {
          for (int k = j; k <= N && ok; k++) {
            if (v[i] + v[j] + v[k] == S - *it) {
              printf("%d %d %d ", v[i], v[j], v[k]);
              ok = false;
            }
          }
        }
      }
      for (int i = 1; i <= N; i++) {
        for (int j = i; j <= N; j++) {
          for (int k = j; k <= N; k++) {
            if (v[i] + v[j] + v[k] == *it) {
              printf("%d %d %d\n", v[i], v[j], v[k]);
              return 0;
            }
          }
        }
      }
    }
  }
  return 0;
}