Pagini recente » Cod sursa (job #1563703) | Istoria paginii runda/simulareoji_2008_11-12 | Cod sursa (job #1007280) | Cod sursa (job #1379638) | Cod sursa (job #2701731)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n,sum,rez,i,j,a[105];
struct str
{
int b,c,d,s;
} v[1000010];
bool comp(str x,str y)
{
if(x.s<=y.s)return true;
return false;
}
int main()
{
fin>>n>>sum;
for(i=1; i<=n; i++)
{
fin>>a[i];
}
int nr=0;
for(i=1; i<=n; i++)
{
for(j=i; j<=n; j++)
{
for(int x=j; x<=n; x++)
{
v[++nr].s=a[i]+a[j]+a[x];
v[nr].b=a[i];
v[nr].c=a[j];
v[nr].d=a[x];
}
}
}
sort(v+1,v+nr+1,comp);
for(i=1; i<=nr; i++)
{
int x=sum-v[i].s;
int st=1;
int dr=nr;
rez=0;
while(dr-st>1)
{
int mij=st+(dr-st)/2;
if(v[mij].s< x)st=mij+1;
else if(v[mij].s==x)
{
rez=mij;
break;
}
else dr=mij+1;
}
if(x==v[rez].s)
{
fout<<v[i].b<<" "<<v[i].c<< " "<<v[i].d<<" "<<v[rez].b<<" "<<v[rez].c<< " "<<v[rez].d<<'\n';
return 0;
}
}
fout<<-1;
return 0;
}