Mai intai trebuie sa te autentifici.
Cod sursa(job #1217696)
| Utilizator | Data | 7 august 2014 23:16:29 | |
|---|---|---|---|
| Problema | Loto | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.3 kb |
#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;
}
