Pagini recente » Cod sursa (job #3261698) | Cod sursa (job #691069) | Cod sursa (job #853589) | Cod sursa (job #2650818) | Cod sursa (job #2363796)
#include <iostream>
#include <fstream>
#include <unordered_set>
#define NMAX 100
using namespace std;
ifstream fin ( "loto.in" );
ofstream fout ( "loto.out" );
int v[1 + NMAX];
unordered_set <int> sums;
int N, S;
void WriteSum ( int sum ) {
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] == sum ) {
fout << v[i] << ' ' << v[j] << ' ' << v[k] << ' ';
return ;
}
}
}
}
}
int main() {
fin >> N >> S;
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++ )
sums.insert ( v[i] + v[j] + v[k] );
for ( int i = 1; i <= N; i++ ) {
for ( int j = 1; j <= N; j++ ) {
for ( int k = 1; k <= N; k++ ) {
if ( sums.find ( S - v[i] - v[j] - v[k] ) != sums.end() ) {
fout << v[i] << ' ' << v[j] << ' ' << v[k] << ' ';
WriteSum ( S - v[i] - v[j] - v[k] );
return 0;
}
}
}
}
fout << -1 << '\n';
return 0;
}