Pagini recente » Cod sursa (job #1660538) | Cod sursa (job #1425223) | Cod sursa (job #2808600) | Cod sursa (job #661985) | Cod sursa (job #2177919)
#include <bits/stdc++.h>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
int v[1000005];
int n, S, nr[105];
int p, poz, st, dr, s1, s2;
bool gata;
int main(){
in>>n>>S;
for( int i = 1; i <= n; i++ )
in>>nr[i];
for( int i = 1; i <= n; i++ )
for( int j = 1; j <= n; j++ )
for( int k = 1; k <= n; k++ )
{
p++;
v[p] = nr[i] + nr[j] + nr[k];
}
sort( v + 1, v + p + 1 );
int st = 1, dr = p;
while( st <= dr )
{
while( v[st] + v[dr] > S )
dr--;
if( v[st] + v[dr] == S )
{
s1 = v[st];
s2 = v[dr];
}
st++;
}
if( st > dr )
{
out<<-1;
return 0;
}
gata = false;
for( int i = 1; i <= n && !gata; i++ )
for( int j = 1; j <= n && !gata; j++ )
for( int k = 1; k <= n && !gata; k++ )
if( nr[i] + nr[j] + nr[k] == s1 )
{
out<<nr[i]<<" "<<nr[j]<<" "<<nr[k]<<" ";
gata = true;
}
for( int i = 1; i <= n; i++ )
for( int j = 1; j <= n; j++ )
for( int k = 1; k <= n; k++ )
if( nr[i] + nr[j] + nr[k] == s2 )
{
out<<nr[i]<<" "<<nr[j]<<" "<<nr[k]<<" ";
}
return 0;
}