Problema: hacker di slot machine di Facebook Hacker Cup 2011 Round 1B
Obiettivo: il codice più breve nella tua lingua preferita usando stdin / stdout. Non puoi presumere che getRandomNumbersia definito, cioè la tua soluzione deve includere una versione potenzialmente golfata come funzione o in qualche altro modo.
Soluzione di riferimento: su SO [Ho scelto il mio, perché utilizza stdin / stdout e non sono sicuro della soluzione di Dave.]
Segue il testo del problema:
Di recente hai stretto amicizia con un ragazzo che scrive software per slot machine. Dopo essere uscito un po 'con lui, noti che ha un debole per mostrare la sua conoscenza di come funzionano le slot machine. Alla fine riuscirai a descriverti in modo preciso e dettagliato l'algoritmo utilizzato su una particolare marca di macchina. L'algoritmo è il seguente:
int getRandomNumber() {
secret = (secret * 5402147 + 54321) % 10000001;
return secret % 1000;
}
Questa funzione restituisce un numero intero in [0, 999]; ogni cifra rappresenta uno dei dieci simboli che appaiono su una ruota durante un particolare stato della macchina. Il segreto è inizialmente impostato su un valore non negativo sconosciuto.
Osservando il funzionamento di una macchina abbastanza a lungo, è possibile determinare il valore del segreto e quindi prevedere i risultati futuri. Conoscendo i risultati futuri potresti scommettere in modo intelligente e vincere molti soldi.
Ingresso
La prima riga dell'ingresso contiene un numero positivo T , il numero di casi di test. Questo è seguito da casi di test T. Ogni caso di test è costituito da un numero intero positivo N , il numero di osservazioni fatte. I token N successivi sono numeri interi da 0 a 999 che descrivono le tue osservazioni.
Produzione
Per ogni caso di test, emettere i successivi 10 valori che sarebbero visualizzati dalla macchina separati da spazi bianchi. Se la sequenza osservata non può essere prodotta dalla macchina descritta dal tuo amico, stampa "Wrong machine"invece. Se non è possibile determinare in modo univoco i successivi 10 valori, stampare "Not enough observations"invece.
vincoli
- T = 20
- 1 ≤ N ≤ 100
- I token nell'input non sono più lunghi di 3 caratteri e contengono solo cifre 0-9.
Esempio di input
5
1 968
3 767 308 284
5 78 880 53 698 235
7 23 786 292 615 259 635 540
9 862 452 303 558 767 105 911 846 462
Esempio di output
Not enough observations
577 428 402 291 252 544 735 545 771 34
762 18 98 703 456 676 621 291 488 332
38 802 434 531 725 594 86 921 607 35
Wrong machine