Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

AL_19_10 - Gra w czterech wymiarach

Antek i Basia wymyślili nową grę. Toczy się ona na planszy w kształcie tesseraktu o ustalonej długości krawędzi N, który umieszczony jest w czterowymiarowym układzie współrzędnych kartezjańskich tak, że jego krawędzie są równoległe do osi, jeden z wierzchołków ma współrzędne (0,0,0,0), a przeciwległy (N,N,N,N). Każdy z graczy używa pionków pewnego koloru (weźmy dla przykładu czarne i białe), a sama gra polega na naprzemiennym stawianiu przez graczy swoich pionków w wolnych punktach kratowych należących do hipersześcianu. Punkty trzeba zajmować bardzo rozważnie, ponieważ w trakcie gry może nastąpić bicie. Jeżeli na odcinku łączącym stawiany w danym ruchu pionek z innym pionkiem tego gracza znajdują się tylko pionki przeciwnika lub niezajęte punkty, to te pionki przeciwnika są zbijane.

Antek i Basia radzą sobie już w tej grze całkiem dobrze, ale przydałby im się program, który na podstawie aktualnej sytuacji na planszy obliczy liczbę zbijanych pionków przeciwnika dla kilku rozważanych ruchów. Napisanie takiego programu to Twoje zadanie.

Wejście

W pierwszej linii długość krawędzi hipersześcianu N (2 ≤ N30).
W drugiej linii liczba białych pionków znajdujących się na planszy b (0b < min((N+1)430000).
W kolejnych b liniach po cztery liczby całkowite xi (dla = 1..4, 0xiN) oznaczające współrzędne punktów zajętych przez białe pionki.
W następnej linii liczba czarnych pionków znajdujących się na planszy c (0c+b < min((N+1)430000).
W kolejnych c liniach po cztery liczby całkowite xi (dla = 1..4, 0xiN) oznaczające współrzędne punktów zajętych przez czarne pionki.

Następnie liczba rozważanych ruchów r (1r100).
W każdej z kolejnych r linii najpierw litera 'B' lub 'C' oznaczająca, który gracz miałby wykonać następny ruch. Potem cztery liczby całkowite ai (dla i = 1..4, 0aiN) oznaczające współrzędne wolnego punktu, którego zajęcie dany gracz rozważa.

Wyjście

Dla każdego rozważanego ruchu w osobnej linii jedna liczba całkowita oznaczające ile pionków przeciwnika zostałoby zbitych.

Przykład

Wejście:
3 8 1 0 1 0 2 0 2 0 0 2 2 2 1 1 1 1 1 3 1 0 3 1 3 1 3 1 1 3 3 3 3 3 7 0 3 3 3 3 0 3 0 1 2 1 2 1 3 1 1 2 2 2 2 2 2 1 3
1 3 1 2 2 B 1 3 1 3 C 0 0 0 0 Wyjście: 5
4
 

Wyjaśnienie do przykladu:
Gdyby grający białymi postawił swój pionek w punkcie (1,3,1,3), to zostałyby zbite czarne pionki z punktów: (1,3,1,1), (1,3,1,2), (1,2,1,2), (2,2,1,3) i (2,2,2,2).
Gdyby grający czarnymi postawił swój pionek w punkcie (0,0,0,0), to zostałyby zbite białe pionki z punktów: (1,0,1,0), (2,0,2,0), (1,1,1,1) oraz (0,2,2,2).


Dodane przez:Witold Długosz
Data dodania:2014-11-27
Limit czasu wykonania programu:1s-3s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: ASM64 GOSU
Pochodzenie: ALGOLIGA 19

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.