Time limit: 0.2s
Memory limit: 4MB
Input: poligon.in
Output: poligon.out
Se dă un caroiaj de în care sunt plasate puncte.
Fiecare punct poate fi legat de vecinul sau direct pe maxim opt direcții ().
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 : , , , trei numere naturale nenule, separate prin câte un spaţiu, reprezentând dimensiunile ale caroiajului şi numărul de puncte.
- Linia : , , , trei numere naturale nenule, separate printr-un spaţiu, reprezentând coordonatele punctului şi respectiv direcţiile spre care este legat de vecini direcţi.
- Linia : , , , trei numere naturale nenule, separate printr-un spaţiu, reprezentând coordonatele punctului şi respectiv direcţiile spre care are vecini direcţi.
- Linia : , , , trei numere naturale nenule, separate printr-un spaţiu, reprezentând coordonatele punctului şi respectiv direcţiile spre care are vecini direcţi.
Codificarea direcţiilor se face printr-un număr cuprins între şi . Reprezentarea binara a acestuia pe cifre reprezintă, incepând de la stânga spre dreapta, legătură pe direcţiile:
De exemplu:
deci legături spre , , ( – legatura, – nu )
Date de ieșire
Fișier de ieșire: poligon.out
- Linia : , număr natural reprezentând numărul patrulaterelor.
Restricții și precizări
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