Pagini recente » Profil vladii | Statistici petcu raluca (petcuraluca) | Autentificare | Statistici Panzariu Adrian Aurelian (panzeru) | Cod sursa (job #1036682)
#include<fstream>
#include<algorithm>
using namespace std;
int n,s,nrb;
int v[110];
struct loto
{
int s,i,j,k;
};
loto b[1000010];
void read()
{
ifstream f("loto.in");
f>>n>>s;
for (int i=1; i<=n; ++i)
f>>v[i];
}
int binary_search(int low, int high, int value)
{
int mid;
while (low<=high)
{
mid=(low+high)/2;
if (b[mid].s==value)
return mid;
else if (value<b[mid].s)
high=mid-1;
else if (value>b[mid].s)
low=mid+1;
}
return 0;
}
bool cmp(loto a, loto b)
{
return a.s<b.s;
}
void solve()
{
ofstream g("loto.out");
int i,j,k;
for (i=1; i<=n; ++i)
{
for (j=i; j<=n; ++j)
{
for (k=j; k<=n; ++k)
{
++nrb;
b[nrb].s=v[i]+v[j]+v[k];
b[nrb].i=v[i];
b[nrb].j=v[j];
b[nrb].k=v[k];
}
}
}
sort(b+1,b+nrb+1,cmp);
//for(i=1;i<=n;i++)
// g<<v[i]<<" ";
i=j=0;
for (i=1; i<=nrb; ++i)
{
j=binary_search(1,nrb,s-b[i].s);
if (j)
{
g<<b[i].i<<" "<<b[i].j<<" "<<b[i].k<<" "<<b[j].i<<" "<<b[j].j<<" "<<b[j].k<<endl;
return;
}
}
g<<-1<<endl;
}
int main()
{
read();
solve();
return 0;
}