Korsord
K�llkod: korsord.*
Konrad tycker mycket om att l�sa korsord. Han brukar ofta skicka in l�sningarna
till tidningarna, och ibland vinner han priser. Men han tycker att de h�r
korsorden med tal, sk Krypton, �r tr�kiga. I s�dana korsord ges egentligen
l�sningen direkt, fast man vet inte om det, eftersom den �r krypterad.
Varje bokstav �r n�mligen utbytt mot ett unik tal. Ibland f�r man vet vilka
bokst�ver som st�r bakom n�gra tal, men inte alltid.
Titta p� korsordet till h�ger. 1=S och 2=O och 3=T. Med lite funderande kan man t�nka sig att 4=A, 5=X och 6=Y. Det beror f�rst�s p� vilka ord som �r korrekta. Som tur var s� har Konrad sammanst�llt en lista p� s�dana ord.
Konrad vill ha ett program som, utifr�n korsordets talrepresentation och vilka ord som finns i korsordet, en ordlista och eventuella givna bokst�ver, r�knar ut alla tals bokst�ver. Konrad garanterar att utifr�n indata finns det alltid exakt en l�sning till korsordet.
Indata
Indata inledes med ett positivt heltal N
p� en egen rad som anger antalet
korsord.
D�refter f�ljer de N korsorden. Varje korsord inleds med en lista med
godk�nda ord, var och ett p� en egen rad. Orden �r p� 1-20 bokst�ver vardera,
och best�r av de stora bokst�verna A-�. Listan avslutas med tecknet # p�
en egen rad. Listan kan inneh�lla upp till 1000 ord, s� det �r viktigt
att ert program �r effektivt.
D�refter f�ljer heltalen r och k p� en rad,
�tskiljda av mellanslag.
r st�r f�r antalet rader i korsordet, k f�r antalet kolumner.
0 < r,k < 21.
D�refter f�ljer r rader med k heltal p� varje, �tskiljda av
mellanslag. Varje heltal �r mellan 0 och 29, inklusive, d�r 0 st�r f�r
en svart ruta och 1 till och med 29 st�r f�r n�gon bokstav.
Efter de r raderna f�ljer ett heltal o p� en egen rad. Detta
tal st�r f�r hur m�nga ord som finns i korsordet. Efter denna rad f�ljer
o rader. Varje rad inneh�ller en av bokst�verna V eller L f�r
v�gr�t respektive lodr�t.
Tecknet f�ljs av
mellanslag och sedan tre heltal, �tskiljda av mellanslag. Det f�rsta tv�
talen anger koordinaterna ((rad, kolumn), �vre v�nstra h�rnet �r (1,1)) och
det tredje talet �r l�ngden p� ordet.
Eter dessa rader f�ljer ett heltal b p� en egen rad. Detta tal
st�r f�r hur m�nga bokst�ver som �r k�nda. Efter denna rad kommer
b rader av k�nda bokst�ver p� formen
heltal=bokstav .
Utdata
F�r varje korsord skall det finnas en rad f�r varje tal (bokstav) som
finns med i korsordet. Raderna ska ha formatet
heltal=bokstav och skall vara i stigande nummerordning.
Efter dessa rader skall tecknet # skrivas ut p� en egen rad.
Exempel
Indata: Utdata: 2 1=S OST 2=O SAX 3=T YXA 4=A EKA 5=X # 6=Y 3 3 # 2 1 3 1=L 0 4 0 2=U 6 5 4 3=N 3 4=D V 1 1 3 5=M L 1 2 3 6=E V 3 1 3 8=� 3 # 2=O 1=S 3=T VISBY MALM� KRISTIANSTAD KARLSKRONA KALMAR V�XJ� J�NK�PING BOR�S G�TEBORG UDDEVALLA SK�VDE LINK�PING KARLSTAD �REBRO V�STER�S ESKILSTUNA UPPSALA STOCKHOLM BORL�NGE FALUN G�VLE SUNDSVALL H�RN�SAND �STERSUND UME� LUND LULE� HALMSTAD RONNEBY TROLLH�TTAN KARLSTAD # 5 5 0 0 1 0 0 0 1 2 3 4 0 0 1 0 0 2 5 6 8 0 0 0 8 0 0 3 L 1 3 5 V 2 2 4 V 4 1 4 0