Pagini recente » Borderou de evaluare (job #3362369) | Cod sursa (job #3362370) | Borderou de evaluare (job #3362371) | Cod sursa (job #3362368) | Cod sursa (job #3362371)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("loto.in");
ofstream cout("loto.out");
struct sums3
{
int sum,a,b,c;
};
bool cmp(sums3 a,sums3 b)
{
return a.sum<b.sum;
}
int v[101];
sums3 co[175000];
int main()
{
int n,s,k=0;
cin>>n>>s;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int am=1;am<=n;am++)
for(int bm=am;bm<=n;bm++)
for(int cm=bm;cm<=n;cm++)
{
co[k].a=v[am];
co[k].b=v[bm];
co[k].c=v[cm];
co[k++].sum=v[am]+v[bm]+v[cm];
}
sort(co,co+k,cmp);
for(int i=0;i<k;i++)
{
int x=s-co[i].sum;
int st=0,dr=k-1,mid=0;
while(st<=dr)
{
mid=st+(dr-st)/2;
if(co[mid].sum==x)
break;
if(co[mid].sum<x)
st=mid+1;
else dr=mid-1;
}
if(co[mid].sum==x)
{
cout<<co[i].a<<" "<<co[i].b<<" "<<co[i].c<<" "<<co[mid].a<<" "<<co[mid].b<<" "<<co[mid].c;
return 0;
}
}
cout<<-1;
return 0;
}