18/05/2004
Oyunun çözümü ile ilgili PDF formatındaki dokümanı buradan indirebilirsiniz.
Eski çağlarda Zekado ülkesinde şöyle bir oyun oynanırmış:
- Ortaya belli sayıda (n) bilye konur.
- İki kişi sıra ile hamleler yapar.
- Birinci oyuncu ilk hamlesinde ortadan 2 ya da 3 bilye alır.
- Sırası gelen oyuncu, bir önceki oyuncunun aldığı bilye sayısı k ise, k+1≤m≤2k olacak şekilde m tane bilye alır. Son hamlede geriye kalan bilyelerin sayısı ≤k ise bu bilyelerin hepsini alabilir.
- Son bilye grubunu alan oyunu kazanır.
Örnek bir oyun:
Ortada 25 tane bilye var:
|
Aldığı Bilye Sayısı |
Kalan Bilye Sayısı |
1. Oyuncu |
2 |
23 |
2. Oyuncu |
3 |
20 |
1. Oyuncu |
5 |
15 |
2. Oyuncu |
8 |
7 |
1. Oyuncu |
7 |
0 |
Bu durumda son hamleyi yapmış olan 1. oyuncu kazanıyor.
Sizden istenen ise bu oyunu hem 1. hem de 2. oyuncu için oynayan bir program yazmanız.
VARSAYIMLAR
- 2≤n≤100
- Programınız standart girdiden (stdin) hamleleri alıp standart çıktıya (stdout) hamlelerini (aldığı bilye sayılarını) yazmalıdır.
GİRDİ - ÇIKTI
- Programınız oyun başlarken standart girdiden bilye sayısını (n) ve oyuncu numarasını belirten iki adet tamsayı okuyacaktır. Oyuncu numarasının değeri, birinci oyuncu iseniz 1, ikinci oyuncu iseniz 2 olacaktır.
- İlerleyen aşamalarda, hamle sırası karşıdaki oyuncuda ise onun yaptığı hamleyi okuyacak (1 adet tamsayı), sıra kendinde ise hamlesini yazacaktır (1 adet tamsayı).
DEÐERLENDİRME
- Verilen ‘n’ değerleri için, herhangi bir kod diğer bütün kodlarla hem 1. hem de 2. oyuncu için oyunu oynayacaktır.
- Herhangi bir anda yanlış bir hamle yapan oyuncu o oyunu kaybetmiş sayılacaktır.
Follow me on Twitter