arhipelag

Time limit: 0.15s Memory limit: 32MB Input: arhipelag.in Output: arhipelag.out

Î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 dimenisuni N×MN \times M, având valori de 11 și 00, iar fiecare element din matrice reprezintă o zonă de dimensiune 1×11 \times 1 din mare. Liniile matricei sunt numerotate de la 11 la NN, de sus în jos, iar coloanele de la 11 la MM, de la stânga la dreapta. Astfel, colțul din stânga sus al matricei este asociat zonei (1,1)(1, 1), iar colțul din dreapta jos corespunde zonei (N,M)(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 11. Se garantează faptul că toate zonele care conțin valoarea 11 formează dreptunghiuri valide și că oricare două insule sunt separate de apă. De exemplu, Figura 11 de mai jos reprezintă o hartă validă, în timp ce Figura 22 și Figura 33 NU reprezintă o hartă validă.

Cerinţă

Ionienii, fiind oameni practici, doresc construirea unui far-bibliotecă (așezat pe o platformă 1×11 \times 1), într-o zonă acoperită de apă. Poziția platformei va fi aleasă într-o celulă CC astfel încât suma distanțelor dintre toate insulele și CC să fie minimă. Distanța dintre o celulă CC și o insulă este definită ca fiind minimul dintre distanțele Manhattan dintre CC ș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 x1x1 și coloana y1y1, respectiv pe linia x2x2 și coloana y2y2, este definită ca x1x2+y1y2|x1 – x2| + |y1 – y2|, unde x|x| reprezintă valoarea absolută a lui xx.

Date de intrare

Fişierul de intrare arhipelag.in conține, pe prima linie, valorile NN și MM, având semnificația din enunț. Următoarele NN linii conțin câte MM 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 si 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 1515 puncte, 1N,M501 \leq N, M \leq 50;
  • Pentru alte teste în valoare de 2020 de puncte, 1N,M3001 \leq N, M \leq 300, iar numărul de insule din arhipelag nu depășește 300300;
  • Pentru alte teste în valoare de 2020 de puncte, 1N,M3001 \leq N, M \leq 300;
  • Pentru restul testelor, 1N,M1 0001 \leq N, M \leq 1 \ 000;
  • 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)D(x1, y1, x2, y2) insula determinată de dreptunghiul având colțul stânga sus în (x1,y1)(x1, y1) și colțul dreapta jos în (x2,y2)(x2, y2), arhipelagul conține următoarele insule: D1(1,2,2,2)D1(1, 2, 2, 2), D2(1,4,7,4)D2(1, 4, 7, 4), D3(1,6,2,7)D3(1, 6, 2, 7), D4(6,1,7,2)D4(6, 1, 7, 2) și D5(6,6,7,7)D5(6, 6, 7, 7). Notând cu dist(D)dist(D) distanța dintre celula (2,3)(2, 3) și
insula DD, distanțele sunt următoarele: dist(D1)=min21+32,22+32=1dist(D1) = min {|2 – 1| + |3 – 2|, |2 – 2| + |3 - 2|} = 1, dist(D2)=1dist(D2) = 1, dist(D3)=3dist(D3) = 3, dist(D4)=5dist(D4) = 5 și dist(D5)=7dist(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)(1, 2), (2,2)(2, 2), (3,2)(3, 2), (4,3)(4, 3) și (4,4)(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)(1, 2) reprezintă soluția.

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