Pagini recente » Cod sursa (job #2518234) | Cod sursa (job #2954322) | Cod sursa (job #2521001) | Cod sursa (job #3001019) | Cod sursa (job #505460)
Cod sursa(job #505460)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct numere
{int x,y,z,s;};
int n,v[101];
int s,p;
numere nr[1000001];
bool myfunction( numere a, numere b)
{
if( a.s < b.s) return true;
return false;
}
bool ok;
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
for(int i=1;i<=n;i++)
scanf("%d",&v[i]);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
for(int k=1;k<=n;k++)
{
p++;
nr[p].x=v[i];
nr[p].y=v[j];
nr[p].z=v[k];
nr[p].s=nr[p].x+nr[p].y+nr[p].z;
}
}
}
sort( nr + 1, nr + p + 1, myfunction);
int lim2=p;
int lim1=1;
for(int i=1;i<=p;i++)
{
if(nr[lim1].s+nr[lim2].s==s)
{
printf("%d %d %d %d %d %d\n",nr[lim1].x,nr[lim1].y,nr[lim1].z,nr[lim2].x,nr[lim2].y,nr[lim2].z);
ok=true;
break;
}
if(nr[lim1].s+nr[lim2].s<s)
{
lim1++;
continue;
}
if(nr[lim1].s+nr[lim2].s>s)
{
lim2--;
continue;
}
}
if(ok==false)
printf("-1\n");
return 0;
}