Pagini recente » Cod sursa (job #1906758) | Cod sursa (job #2391747) | Cod sursa (job #2942006) | Cod sursa (job #1493613) | Cod sursa (job #965021)
Cod sursa(job #965021)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <set>
using namespace std;
#define Nmax 128
int a[Nmax];
set <int> sum;
ifstream f("loto.in");
ofstream g("loto.out");
int N, S;
void citire()
{
f >> N >> S;
for ( int i = 1; i <= N; i++ )
f >> a[i];
f.close();
}
void gen()
{
for ( int i = 1; i <= N; i++ )
for ( int j = i; j <= N; j++ )
for ( int k = j; k <= N; k++ )
sum.insert(a[i]+a[j]+a[k]);
}
void afis( int s )
{
for ( int i = 1; i <= N; i++ )
for ( int j = i; j <= N; j++ )
for ( int k = j; k <= N; k++ )
if ( a[i]+a[j]+a[k] == s)
g << a[i] << " " << a[j] << " " << a[k] << " ";
}
void rezolva()
{
for ( set<int>::iterator it = sum.begin(); it != sum.end(); ++it )
{
if ( sum.find( S - *it ) != sum.end() )
{
afis( S - *it );
afis( *it );
return;
}
}
g << "-1";
}
int main()
{
citire();
gen();
rezolva();
return 0;
}