Pagini recente » Cod sursa (job #1633399) | Cod sursa (job #2207114) | Cod sursa (job #2244033) | Cod sursa (job #215261) | Cod sursa (job #136339)
Cod sursa(job #136339)
#include <fstream.h>
#include <algorithm>
using namespace std;
int a[100], nr[1<<20], n, s, N;
int main()
{
ifstream in("loto.in");
ofstream out("loto.out");
in>>n>>s;
for (int i=0; i<n; i++)
scanf("%d ", a+i);
for (int i=0; i<n; i++)
for (int j=i; j<n; j++)
for (int k=j; k<n; k++)
nr[N++] = a[i]+a[j]+a[k];
sort(nr, nr+N);
for (int i=0; i<n; i++)
for (int j=i; j<n; j++)
for (int k=j; k<n; k++){
int poz = 0;
for (int p=1<<19; p; p/=2)
if (poz+p<N && nr[poz+p]<=s-a[i]-a[j]-a[k]) poz += p;
if (nr[poz]!=s-a[i]-a[j]-a[k]) continue;
for (int p1=0; p1<n; p1++)
for (int p2=p1; p2<n; p2++)
for (int p3=p2; p3<n; p3++)
if (a[p1]+a[p2]+a[p3] == nr[poz]){
out<<a[i]<<a[j]<<a[k]<<a[p1]<<a[p2]<<a[p3]);
return 0;
}
}
out<<"-1";
}