Sorun: Facebook Hacker Cup 2011 Tur 1B Slot Slot Hacker
Hedef: stdin / stdout kullanarak en sevdiğiniz dilde en kısa kod. getRandomNumberTanımlanamayacağını kabul edemezsiniz , yani çözümünüzün potansiyel olarak golf edilmiş bir versiyonu fonksiyon olarak veya başka bir şekilde içermesi gerekir.
Referans çözüm: SO'da [benimkini seçtim, çünkü stdin / stdout kullanıyor ve dave'nin çözümünden emin değilim.]
Sorun metni şu şekildedir:
Kısa bir süre önce slot makineleri için yazılım yazan bir erkekle arkadaş oldunuz. Onunla biraz takıldıktan sonra, slot makinelerinin nasıl çalıştığına dair bilgisini göstermek için bir tutkunun olduğunu fark ettiniz. Sonunda, belirli bir makine markasında kullanılan algoritmayı sizin için ayrıntılı olarak tarif etmesini sağlarsınız. Algoritma aşağıdaki gibidir:
int getRandomNumber() {
secret = (secret * 5402147 + 54321) % 10000001;
return secret % 1000;
}
Bu işlev [0, 999] 'da bir tamsayı döndürür; her basamak, belirli bir makine durumu sırasında bir tekerlek üzerinde görünen on sembolden birini temsil eder. sır başlangıçta sizin bilmediğiniz negatif olmayan bir değere ayarlanır.
Bir makinenin çalışmasını yeterince uzun gözlemleyerek, sırrın değerini belirleyebilir ve böylece gelecekteki sonuçları tahmin edebilirsiniz. Gelecekteki sonuçları bilmek akıllıca bir şekilde bahis oynayabilir ve çok para kazanabilirsiniz.
Giriş
Girişin ilk satırı test numarası sayısı olan pozitif T sayısını içerir. Bunu T testi vakaları takip eder . Her test durumu, yaptığınız gözlem sayısı olan pozitif bir tamsayı N'den oluşur . Sonraki N belirteçleri, gözlemlerinizi açıklayan 0 ile 999 arasında bir tamsayıdır.
Çıktı
Her test durumu için, boşlukla ayrılmış olarak makine tarafından görüntülenecek sonraki 10 değeri çıktılayın. Gözlemlediğiniz dizi, arkadaşınızın size tarif ettiği makine tarafından üretilemiyorsa, "Wrong machine"bunun yerine yazdırın . Sonraki 10 değeri benzersiz bir şekilde belirleyemiyorsanız, "Not enough observations"bunun yerine yazdırın .
Kısıtlamalar
- T = 20
- 1 ≤ N ≤ 100
- Girişteki simgeler 3 karakterden uzun değildir ve yalnızca 0-9 arasındaki rakamları içerir.
Örnek giriş
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
Örnek çıktı
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