elicop

Time limit: 0.1s Memory limit: 2MB Input: elicop.in Output: elicop.out

Un teren de fotbal este folosit pentru aterizarea elicopterelor. Gazonul de pe stadion este parcelat în pătrăţele de aceeaşi dimensiune, cu laturile paralele cu marginile terenului. Liniile cu pătrăţele de gazon sunt numerotate de sus în jos cu numerele 1,2,,m1, 2, \dots, m, iar coloanele cu pătrăţele de gazon sunt numerotate de la stânga la dreapta cu numerele 1,2,,n1, 2, \dots, n. Din cauza tipului diferit de iarbă se ştie care dintre pătrăţele de gazon sunt afectate sau nu de umbră. Acest lucru este precizat printr-un tablou bidimensional aa cu mm linii şi nn coloane, cu elemente 00 şi 11 (aij=0a_{ij} = 0 înseamnă că pătrăţelul aflat pe linia ii şi coloana jj este afectat de umbră, iar aij=1a_{ij} = 1 înseamnă că pătrăţelul aflat pe linia ii şi coloana jj nu este afectat de umbră). Fiecare elicopter are 33 roţi pe care se sprijină. Roţile fiecărui elicopter determină un triunghi dreptunghic isoscel. Elicopterele aterizează, astfel încât triunghiurile formate să fie cu catetele paralele cu marginile terenului. În exemplul următor avem patru elicoptere.

Pentru a preciza poziţia unui elicopter pe teren este suficient să cunoaştem linia şi coloana vărfurilor ipotenuzei şi poziţia vârfului deasupra (codificată prin 11) sau dedesubtul ipotenuzei (codificată prin 1-1). Pentru exemplu, elicopterul din stânga sus este dat prin (1,1),(3,3)(1, 1), (3, 3) şi 1-1, cel din dreapta sus prin (1,9),(5,5)(1, 9), (5, 5) şi 11, cel din stânga jos prin (5,1),(6,2)(5, 1), (6, 2) şi 11, iar cel din dreapta jos prin (5,9),(6,8)(5, 9), (6, 8) şi 11.
Un elicopter se consideră că a aterizat greşit, dacă triunghiul format sub el (definit mai sus) are mai mult de jumătate din pătrăţele afectate de umbră.
Administratorul terenului de fotbal doreşte să determine numărul N1N_1 de elicoptere, care nu afectează nici un pătrăţel din teren şi numerele de ordine al elicopterelor, care au aterizat greşit în ordine crescătoare: e1,e2,,eN2e_1, e_2, \dots, e_{N_2}, ştiind că există kk elicoptere codificate prin numerele 1,2,,k1, 2, \dots, k.

Cerință

Scrieţi un program care să determine, pentru fişierul cu datele din enunţ: numărul de elicoptere N1N_1, care nu afectează nici un pătrăţel din teren şi numerele de ordine al elicopterelor, care au aterizat greşit în ordine crescătoare, precedate de numărul lor N2N_2.

Date de intrare

Prima linie a fişierului de intrare elicop.in conţine două numere naturale mm şi nn, separate printr-un spaţiu, cu semnificaţia din enunţ. Următoarele mm linii conţin câte nn numere 00 sau 11, separate prin câte un spaţiu cu semnificaţia 00 – pătrăţel de gazon care este afectat de umbră, respectiv 11 - pătrăţel care nu este afectat de umbră. Pe linia m+2m+2 se află numărul de elicoptere kk, iar pe următoarele kk linii (în ordinea codificării lor 1,2,,k1, 2, \dots, k) câte cinci numere separate prin cate un spaţiu, pentru liniile şi coloanele ipotenuzelor şi poziţia vârfului (11 sau 1-1), triunghiurilor dreptunghice asociate elicopterelor: L1 C1 L2 C2 pL_1 \ C_1 \ L_2 \ C_2 \ p.

Date de ieșire

Fişierul de ieşire elicop.out va conţine două linii: prima linie numărul N1N_1 de elicoptere, pe care nu afectează nici un pătrăţel din teren, a doua linie cu numerele naturale N2,e1,e2,,eN2N_2, e_1, e_2, \dots, e_{N_2} separate prin câte un spaţiu, în ordine crescătoare.

Restricții și precizări

  • 2m,n1002 \leq m, n \leq 100
  • 1k401 \leq k \leq 40
  • Nu există suprapuneri de triunghiuri asociate la două elicoptere.
  • Triunghiurile asociate elicopterelor conţin cel puţin trei pătrăţele.
  • Pentru determinarea corectă a valorilor N1N_1 se obţine 4040% din punctajul unui test, iar pentru determinarea corectă a valorilor N2,e1,e2,,eN2N_2, e_1, e_2, \dots, e_{N_2} se obţine 6060% din punctajul unui test.

Exemplu

elicop.in

7 9
1 1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1 0
0 0 1 0 1 1 1 0 0
1 1 1 0 1 1 0 1 1
0 0 1 1 1 1 0 1 1
1 1 1 1 1 1 0 1 1
1 1 1 1 1 1 0 0 1
4
1 1 3 3 -1
1 9 5 5 1
5 1 6 2 1
5 9 6 8 1

elicop.out

2
2 1 3

Explicație

Elicopterele 22 şi 44 nu afectează niciun pătrăţel de gazon. Elicopterele 11 şi 33 afectează fiecare mai mult de jumătate din numărul pătrăţelelor asociate triunghiurilor dreptunghice şi deci aterizează greşit. Elicopterul 11 face umbră la 66 pătrăţele, din care afectate sunt 44. Elicopterul 33 face umbră la 33 pătrăţele, din care afectate sunt două.

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