Pagini recente » Cod sursa (job #644251) | Borderou de evaluare (job #1775897) | Cod sursa (job #2454110) | Cod sursa (job #287296) | Cod sursa (job #856214)
Cod sursa(job #856214)
#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<<' '<<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;
}