Pagini recente » Cod sursa (job #1856367) | Cod sursa (job #2010407) | Profil M@2Te4i | Cod sursa (job #2015617) | Cod sursa (job #2405943)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct potae{
int a,b,c,sum;
} t[1000009];
bool cmp (const potae a, const potae b){
return a.sum<b.sum;
}
int n,s,i,j,k,val,st,dr,mid, v[100], dim;
int main()
{
f>>n>>s;
for ( i=1; i <= n; i++ ) f>>v[i];
for ( i=1; i <= n; i++)
for ( j=i; j <= n; j++)
for ( k=j; k <= n; k++){
t[++dim].a = v[i];
t[dim].b = v[j];
t[dim].c = v[k];
t[dim].sum = v[i] + v[j] + v[k];
}
sort (t+1, t+dim+1, cmp);
for(i=1; i<=n; i++)
for ( j=i; j <= n; j++)
for ( k=j; k <= n; k++){
val = s - v[i] - v[j] - v[k];
st=1; dr=dim;
while ( st <= dr ){
mid = st + ( dr - st )/2;
if ( t[mid].sum==val){
g<<v[i]<<" "<<v[j]<<" "<<v[k]<<" "<<t[mid].a<<" "<<t[mid].b<<" "<<t[mid].c;
return 0;
}
if ( t[mid].sum > val ) dr = mid - 1 ;
else st = mid + 1;
}
}
g<<-1;
return 0;
}