Cod sursa(job #1283075)

Utilizator OwlreeRobert Badea Owlree Data 5 decembrie 2014 00:58:31
Problema Loto Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I Marime 0.9 kb
#include <bits/stdc++.h>

using namespace std;

int main() {

  ifstream in("loto.in");
  ofstream out("loto.out");

  int N, S;
  in >> N >> S;
  vector <int> v(N);

  for (int i = 0; i < N; ++i) {
    in >> v[i];
  }

  sort(v.begin(), v.end());
  unordered_map<int, vector<int> > sums;

  for (int i = 0; i < N; ++i) {
    for (int j = i; j < N; ++j) {
      for (int k = j; k < N; ++k) {
        sums[v[i] + v[j] + v[k]] = {i, j, k};
      }
    }
  }

  for (int i = 0; i < N; ++i) {
    for (int j = i; j < N; ++j) {
      for (int k = j; k < N; ++k) {
        if (sums.count(S - v[i] - v[j] - v[k]) > 0) {
          vector <int> got = sums[S - v[i] - v[j] - v[k]];
          out << v[i] << " " << v[j] << " " << v[k] << " ";
          out << v[got[0]] << " " << v[got[1]] << " " << v[got[2]] << "\n";
          return 0;
        }
      }
    }
  }

  out << "-1\n";

  in.close();
  out.close();

  return 0;
}