Cod sursa(job #954530)

Utilizator toranagahVlad Badelita toranagah Data 29 mai 2013 13:06:01
Problema Loto Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <algorithm>
#include <fstream>
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;

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

int N, S;
int nums[105];

struct Tuplu {
  int a, b, c;
  Tuplu() {
    a = b = c = 0;
  }
  Tuplu(int aa, int bb, int cc) {
    a = aa, b = bb, c = cc;
  }
};
unordered_map<int, Tuplu> sums;

void read_input();
void solve();

int main() {
  read_input();
  solve();

  return 0;
}

void read_input() {
  fin >> N >> S;
  for (int i = 0; i < N; ++i) {
    fin >> nums[i];
  }
}


void solve() {
  int sum;
  Tuplu t;
  for (int i = 0; i < N; ++i) {
    for (int j = 0; j < N; ++j) {
      for (int k = 0; k < N; ++k) {
        sum = nums[i] + nums[j] + nums[k];
        if (sum > S) continue;
        sums[sum] = Tuplu(nums[i], nums[j], nums[k]);
        
        if (sums.count(S - sum)) {
          t = sums[S - sum];
          fout << nums[i] << ' ' << nums[j] << ' ' << nums[k] << ' '; 
          fout << t.a << ' '<< t.b << ' ' << t.c;
          return;
        }
      }
    }
  }
  fout << -1;
}