[shkola] Edna zadacha za wsichki

Qwno mxlchite. Ne iskate da se wizhdame na zhivo, zatowa shte wi tormozq 
sxs zadachi ot tuk. Oswen towa mi beshe okazan i izwesten wxnshen natisk 
zadeto ne sxm organiziral diskusii wxw foruma sled kato sxm bil 
edinstweniqt chowek, kojto mozhel da go naprawi towa (abe nadqwam se 
towa da ne oznachawa che sxm edinstweniq kojto w momenta reshawa 
zadachi, no sega shte se widi)...

Ta taka, eto wi mnogo interesna zadachka. Sxwetwam wi txrpeliwo da 
prochetete celiqt e-mail zashtoto interesnata chast e nakraq :)

Imate slednata igra. W k reda (k <= 10) sa naredeni opredelen broj 
klechki. Red i ima a(i) klechki (a(i) <= 10). Wseki igrach ima prawo da 
wzeme 1, 2 ili 3 posledowatelni klechki ot izbran ot igracha red(stiga 
w reda da ima ostanali klechki). Ne e zadxlzhitelno da wzimate pxrwite 
ili poslednite klechki ot red. A kakwo se ima predwid pod 
posledowatelni: ako imate red s 6 klechki nomerirani ot 1 do 6 i wie 
wzemete napr. klechki 2 i 3. Sled towa drugiqt igrach(a i wie w 
posledstwie) ne mozhe da wzeme klechki 1 i 4 zashtoto te ne sa 
posledowatelni (bez znachenie che 2 i 3 gi nqma). Priemajte che kato 
wzemete klechka ostawa prazno mqsto.
Igrachite se reduwat. Igrata gubi igracha, kojto ne mozhe da naprawi 
hod(t.e. toj e na red i ne ostanali klechki za wzimane).
Trqbwa da napishete programa koqto igrae wmesto pxrwiqt igrach i se 
sxstezawa s programa na zhurito. 

Txj kato pri wsichkoto mi rowene w Net-a ne uspqh da otkriq wxprosnata 
programa na zhurito a i az ne znam reshenie na zadachata - obqwqwam 
sxstezanie t.e. shte si testwame resheniqta edin na drug (imajte 
predwid che wsqka programa koqto mozhe da igrae kato pxrwi igrach mozhe 
da igrae i kato wtori - mislq che towa e ochewidno).

Utochnqwam whoda:
Pxrwi red - 1 <= k <= 10
Wtori red - k chisla - a(1), a(2), ..., a(k) 1 <= a(i) <= 10
Treti red - 1 ili 2 (1 ako washata programa e na hod i 2 ako ne e)

Wseki hod predstawlqwa edin red s tri chisla:
R A B
R - red ot kojto se wzimat klechki
A  i B - wzimat se klechki ot poziciq A do poziciq B(wkljuchitelno)(A <= 
B)
Washata programa trqbwa da izkarwa hoda na standartniqt izhod, kogato e 
na hod i da chete ot standartniqt hod hoda na protiwnika.

Za wsichki pisheshti na C/C++. Ne zabrawqjte fflush(stdout) t.e. izhoda 
izglezhda taka:

printf("%i %i %i\n", R, A, B);
fflush(stdout);

Wreme za hod - 1 sec.
Ogranichenie za pamet - 64 MB.
Pri greshen hod ili prehwxrlqne na nqkoe ot ogranicheniqta - gubite.

Nakraq, imajte predwid che igrata sledwa da e opredelena - t.e. wsqka 
poziciq e ili gubeshta ili pecheliwsha za igracha na hod i txnkostta e 
da otkriete dali ste w takawa poziciq. T.e. mislete algoritmi, a ne AI. 
No pxk ako iskate - nikoj ne wi spira... :-)

Ochakwam da se wkljuchite w diskusii kakto i da prashtate programi - 
"sxstezateli". I mi kazhete predwaritelno interesno li wi e i smqtate 
li da uchastwate za da znam dali da pisha programa-sxdiq.

Igrata se igrae dokato nqkoi ne izmisli algoritxma t.e. negowata 
programa(ewentualno n-tata i versiq) prebie wsichki ostanali.

Pozdrawi,
        Ivo

-- 
Ivaylo Riskov <ivaylo_riskov@xxxxxxx>


Other related posts: