În regiunea Ionia a lumii grecești antice, regiune ce corespunde teritoriului actual al Mării Egee, există mai multe insule. Harta mării este reprezentată de o matrice de dimensiuni N•M
, având valori de 1
și 0
, iar fiecare element din matrice reprezintă o zonă de dimensiune 1•1
din mare. Liniile matricei sunt numerotate de la 1
la N
, de sus în jos, iar coloanele de la 1
la M
, de la stânga la dreapta. Astfel, colțul din stânga sus al matricei este asociat zonei (1,1)
, iar colțul din dreapta jos corespunde zonei (N,M)
.
Un element care conține valoarea 0
reprezintă faptul că în acea zonă se află apă. O insulă este determinată
de un dreptunghi format în totalitate din valori de 1
. Se garantează faptul că toate zonele care conțin valoarea 1
formează dreptunghiuri valide și că oricare două insule sunt separate de apă.
Cerința
Ionienii, fiind oameni practici, doresc construirea unui far-bibliotecă (așezat pe o platformă 1•1
), într-o zonă acoperită de apă. Poziția platformei va fi aleasă într-o celulă C
astfel încât suma distanțelor dintre toate insulele și C
să fie minimă. Distanța dintre o celulă C
și o insulă este definită ca fiind minimul dintre distanțele Manhattan dintre C
și fiecare celulă care aparține insulei (distanța poate trece atât prin alte insule, cât și prin zone acoperite de apă). Distanța Manhattan dintre două celule aflate pe linia x1
și coloana y1
, respectiv pe linia x2
și coloana y2
, este definită ca |x1 – x2| + |y1 – y2|
, unde |x|
reprezintă valoarea absolută a lui x
.
Date de intrare
Fișierul de intrare arhipelag.in
conține pe prima linie valorile N
și M
, având semnificația din enunț. Următoarele N
linii conțin câte M
valori binare, separate de câte un spațiu, reprezentând harta mării.
Date de ieșire
Fișierul de ieșire arhipelag.out
va conține o pereche de numere naturale, reprezentând linia și coloana celulei alese de ionieni pentru construcție. Dacă există mai multe soluții posibile, se va alege cea care are linia minimă. Dacă în continuare există mai multe soluții, se va alege cea care are coloana minimă.
Restricții și precizări
- Pentru teste în valoare de 15 puncte,
1 <= N, M <= 50
- Pentru alte teste în valoare de 20 de puncte,
1 <= N, M <= 300
, iar numărul de insule din arhipelag nu depășește300
- Pentru alte teste în valoare de 20 de puncte,
1 <= N, M <= 300
- Pentru restul de teste,
1 <= N, M <= 1000
- Se garantează că există cel puțin o zonă acoperită de apă
Exemplul 1
arhipelag.in
7 7 0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1
arhipelag.out
2 3
Explicație
Notând cu D(x1, y1, x2, y2)
insula determinată de dreptunghiul având colțul stânga sus în (x1, y1)
și colțul dreapta jos în (x2, y2)
, arhipelagul conține următoarele insule: D1(1, 2, 2, 2)
, D2(1, 4, 7, 4)
, D3(1, 6, 2, 7)
, D4(6, 1, 7, 2)
și D5(6, 6, 7, 7)
. Notând cu dist(D)
distanța dintre celula (2, 3)
și insula D
, distanțele sunt următoarele: dist(D1) = min {|2 – 1| + |3 – 2|, |2 – 2| + |3 - 2|} = 1
, dist(D2) = 1
, dist(D3) = 3
, dist(D4) = 5
și dist(D5) = 7
.
Exemplul 2
arhipelag.in
4 4 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0
arhipelag.out
1 2
Explicație
Pentru fiecare dintre celulele (1, 2)
, (2, 2)
, (3, 2)
, (4, 3)
și (4, 4)
, distanța dintre celulă și singura insulă existentă în acest exemplu este aceeași. Se va alege cea care are linia minimă, iar în caz de egalitate se va alege cea care are coloana minimă. Astfel, celula (1, 2)
reprezintă soluția.