Pagini recente » Istoria paginii runda/the_easiest_race | Istoria paginii runda/ojipregatire | Cod sursa (job #438325) | Cod sursa (job #1011324) | Cod sursa (job #1278511)
#include <fstream>
#include <algorithm>
using namespace std;
long long a[105],i,n,s,nr,ok,j,k,poz;
struct per{
long long s,x,y,z;
}v[1000005];
inline bool cmp(per elem1 , per elem2)
{
return elem1.s<elem2.s;
}
long long cautbin(long long num)
{
long long st,dr,mij;
st=1;dr=nr;
while (st<=dr) {
mij=(st+dr)/2;
if (v[mij].s==num) return mij;
else
if (v[mij].s<num) st=mij+1;
else
dr=mij-1;
}
return 0;
}
int main()
{
ifstream f("loto.in");
ofstream g("loto.out");
f>>n>>s;
for (i=1;i<=n;++i)
f>>a[i];
for (i=1;i<=n;++i)
for (j=1;j<=n;++j)
for (k=1;k<=n;++k) {
v[++nr].s=a[i]+a[j]+a[k];
v[nr].x=a[i];
v[nr].y=a[j];
v[nr].z=a[k];
}
sort(v+1,v+nr+1,cmp);
ok=0;
for (i=1;i<=nr;++i) {
poz=cautbin(s-v[i].s);
if (poz>0) {
g<<v[i].x<<' '<<v[i].y<<' '<<v[i].z<<' ';
g<<v[poz].x<<' '<<v[poz].y<<' '<<v[poz].z<<' ';
ok=1;
break;
}
}
if (ok==0) g<<"-1";
f.close();
g.close();
return 0;
}