poligon

Time limit: 0.2s Memory limit: 4MB Input: poligon.in Output: poligon.out

Se dă un caroiaj de M×NM \times N în care sunt plasate KK puncte.

Fiecare punct poate fi legat de vecinul sau direct pe maxim opt direcții (N,NE,E,SE,S,SV,V,NVN, NE, E, SE, S, SV, V, NV).

Cerință

Determinaţi patrulaterele având vârfurile în punctele date iar laturile formate din legaturi între două sau mai multe puncte coliniare.

Date de intrare

Fișier de intrare: poligon.in

  • Linia 11: MM, NN, KK, trei numere naturale nenule, separate prin câte un spaţiu, reprezentând dimensiunile M,NM,N ale caroiajului şi KK numărul de puncte.
  • Linia 22: I1I_1, J1J_1, V1V_1, trei numere naturale nenule, separate printr-un spaţiu, reprezentând coordonatele punctului 11 şi respectiv direcţiile spre care este legat de vecini direcţi.
  • Linia 33: I2I_2, J2J_2, V2V_2, trei numere naturale nenule, separate printr-un spaţiu, reprezentând coordonatele punctului 22 şi respectiv direcţiile spre care are vecini direcţi.

     \ \ \ \ \ \ldots

  • Linia K+1K+1: IkI_k, JkJ_k, VkV_k, trei numere naturale nenule, separate printr-un spaţiu, reprezentând coordonatele punctului KK şi respectiv direcţiile spre care are vecini direcţi.

Codificarea direcţiilor se face printr-un număr cuprins între 00 şi 255255. Reprezentarea binara a acestuia pe 88 cifre reprezintă, incepând de la stânga spre dreapta, legătură pe direcţiile:

N NE E SE S SV V NVN \ NE \ E \ SE \ S \ SV \ V \ NV

De exemplu:

1 0 0 0 0 1 1 0=1341 \ 0 \ 0 \ 0 \ 0 \ 1 \ 1 \ 0 = 134 deci legături spre NN, SVSV, VV (11 – legatura, 00 – nu )

Date de ieșire

Fișier de ieșire: poligon.out

  • Linia 11: npoln_{pol}, număr natural reprezentând numărul patrulaterelor.

Restricții și precizări

  • 1<N,M1001 < N, M \leq 100
  • 4K504 \leq K \leq 50

Exemplu

tablou.in

4 4 9
1 1 24
2 1 184
2 2 43
2 3 22
3 1 136
3 2 213
3 4 5
4 1 192
4 3 65

tablou.out

6

Explicație

Log in or sign up to be able to send submissions!