Nevedel by mi niekto pomoct s prikladom? nechce mi to zbehnut....
Úloha
Daná je počiatočná konfigurácia hry. Zistite najmenší možný počet ťahov, ktorý potrebujeme na ukončenie Hry16 z tejto počiatočnej konfigurácie.
Vstup
Prvý riadok vstupu obsahuje počet testovacích sád Q, (1≤Q≤100). Ďalej bude nasledovať Q testovacích sád - popisov počiatočných konfigurácií Hry16. Jeden popis konfigurácie pozostáva zo 4 riadkov, z ktorých každý obsahuje presne 4 znaky '0' alebo '1'. Znak '0' reprezentuje biele políčko a znak '1' čierne políčko počiatočnej konfigurácie. Jednotlivé testovacie sady sú oddelené prázdnym riadkom.
Výstup
Pre každú počiatočnú konfiguráciu vypíšte minimálny počet ťahov, ktorými vieme túto konfiguráciu vyriešiť. Váš program má dokopy vypísať Q čísel, každé v samostatnom riadku.
Poznámka
Každá konfigurácia Hry16 sa dá vyhrať do víťazného konca.
Príklad
Vstup
3
0000
0000
0000
0000
0011
0011
0000
0000
1010
0101
1010
0101
Výstup
0
1
10
zdrojak je:
const pt: array [1..16] of word =
(52224, 60928, 30464, 13056, 52416, 61152, 30576, 13104, 3276, 3822, 1911, 819, 204, 238, 119, 51);
var q, i, ii, jj, p: byte;
x, ff, rr: word;
ch: char;
r: array [0..65535] of byte;
procedure f(u: byte);
begin
if u = 16 then r[ff] := p;
if u < 16 then begin
rr := rr * 2;
f(u + 1);
rr := rr div 2;
end;
if rr mod 2 = 0 then begin
Inc(rr); Inc(p);
ff := ff xor pt;
f(u);
ff := ff xor pt;
Dec(p);
end;
end;
BEGIN
ReadLN(q);
ff := 0;
rr := 0;
p := 0;
f(1);
for i := 1 to q do begin
ReadLN;
x := 0;
for ii := 1 to 4 do begin
for jj := 1 to 4 do begin
Read(ch);
x := x * 2 + Ord(ch) - Ord('0');
end;
ReadLN;
end;
WriteLN(r[x]);
end;
END.
ale nejako mi to pada...neviem preco
zfunkcnenie programu
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
už si to písala dvakrát. Basa 1 deň za zakladanie duplicitných tém
http://www.hojko.com/problem-so-zdrojakom-t91943.html
http://www.hojko.com/rekurzia-t91875.html
http://www.hojko.com/problem-so-zdrojakom-t91943.html
http://www.hojko.com/rekurzia-t91875.html