Pagini recente » Cod sursa (job #1813070) | Cod sursa (job #3186131) | Cod sursa (job #2814412) | Cod sursa (job #2788339) | Cod sursa (job #1780665)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("loto.in"); ofstream g("loto.out");
int n, s, nr, a[112];
struct art {int s, x, y, z;} v[1000005];
bool cmp(art x, art y)
{ return x.s<y.s;}
int main ()
{ f>>n>>s;
for(int i=0; i<n; ++i) f>>a[i];
for (int i=0; i<n;i++)
for (int j=i;j<n;j++)
for (int k=j;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);
int st,dr,m,suma;
for(int i=1; i<=nr; ++i)
{ st=1; dr=nr; suma=s-v[i].s;
while (st<=dr)
{ m=(st+dr)>>1;
if (v[m].s == suma)
{ g<<v[i].x<<' '<<v[i].y<<' '<<v[i].z<<' ';
g<<v[m].x<<' '<<v[m].y<<' '<<v[m].z<<'\n'; return 0;
}
else if(v[m].s<suma) st=m+1; else dr=m-1;
}
}
g<<"-1\n"; return 0;
}