Pagini recente » Cod sursa (job #2320268) | Cod sursa (job #996282) | Cod sursa (job #2641358) | Cod sursa (job #81461) | Cod sursa (job #1374573)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int main()
{
ifstream f("loto.in");
ofstream g("loto.out");
int n,st;
f>>n>>st;
int i,v[n];
for(i=0;i<n;i++)f>>v[i];
sort(v,v+n);
int v2[n*n*n],v4[n*n*n],lim;
for(i=0,lim=0;i<n*n*n;i++)
{
if(i/n/n>i/n%n)i=i/n/n*(n*n+n+1);
else if(i/n%n>i%n)i=i/n/n*n*n+i/n%n*(n+1);
v2[lim]=v[i%n]+v[i/n%n]+v[i/n/n];
v4[lim]=i;
lim++;
}
int t=0,j,k;
i=-1;
while(t==0&&i<lim)
{
i++;
for(j=i,k=lim-1;j<k;)
{
if(v2[(j+k)/2]==st-v2[i])
{
j=(j+k)/2;
k=j;
}
else if(v2[(j+k)/2]<st-v2[i])
{
j=(j+k)/2+1;
}
else if(v2[(j+k)/2]>st-v2[i])
{
k=(j+k)/2-1;
}
}
if(v2[j]==st-v2[i])t=1;
}
if(t==0)g<<"-1";
else
{
int v3[6];
v3[0]=v[v4[i]%n];
v3[1]=v[v4[i]/n%n];
v3[2]=v[v4[i]/n/n];
v3[3]=v[v4[j]%n];
v3[4]=v[v4[j]/n%n];
v3[5]=v[v4[j]/n/n];
sort(v3,v3+6);
for(i=0;i<6;i++)g<<v3[i]<<' ';
}
}