Pagini recente » Cod sursa (job #1507578) | Cod sursa (job #391224) | Cod sursa (job #2790111) | Cod sursa (job #2477735) | Cod sursa (job #1217696)
#include <fstream>
#define prim 104729
using namespace std;
struct lista{
int nr;
lista *next;
};
int N,S,a[110]; lista *table[prim]; bool g;
void add(int nr){
int ind=nr%prim;
lista *aux=new lista;
aux->nr=nr;
aux->next=table[ind];
table[ind]=aux;
}
bool cauta(int nr){
int ind=nr%prim;
for (lista *p=table[ind]; p!=NULL; p=p->next)
if (p->nr==nr)
return 1;
return 0;
}
int main(){
ifstream in("loto.in");
ofstream out("loto.out");
in >> N >> S;
int i,j,k;
for (i=1; i<=N; i++)
in >> a[i];
for (i=1; i<=N; i++)
for (j=i; j<=N; j++)
for (k=j; k<=N; k++)
add(a[i]+a[j]+a[k]);
for (i=1; i<=N && !g; i++)
for (j=i; j<=N && !g; j++)
for (k=j; k<=N && !g; k++)
g=cauta(S-(a[i]+a[j]+a[k]));
if (g==0){
out << -1;
return 0;
}
int aux=S-(a[i]+a[j]+a[k]);
out << a[i] << " " << a[j] << " " << a[k] << " ";
for (i=1; i<=N; i++)
for (j=i; j<=N; j++)
for (k=j; k<=N; k++)
if (a[i]+a[j]+a[k]==aux){
out << a[i] << " " << a[j] << " " << a[k];
return 0;
}
return 0;
}