soldati

Time limit: 0.2s Memory limit: 8MB Input: soldati.in Output: soldati.out

Cei SS soldați ai unei unități militare au un moment de relaxare și sunt răspândiți pe platou în poziții cunoscute. Evident, ei nu stau aliniați, în poziție de drepți. Platoul poate fi reprezentat printr-un tablou bidimensional cu nn linii (numerotate de la 11 la nn) și mm coloane (numerotate de la 11 la mm), o poziție în tablou fiind identificată prin indicele liniei și respectiv al coloanei. Când se anunță sosirea comandantului unității militare, cei SS soldați trebuie să se alinieze. Alinierea presupune aşezarea celor SS soldaţii pe o aceeași linie LL, pe coloane consecutive. Ca să nu se creeze haos, fiecare dintre ei se va deplasa numai pe orizontală și verticală. Dacă soldatul ii (1iS1 \leq i \leq S) se află iniţial în poziţia (Li,Ci)(L_i, C_i) iar la aliniere ajunge în poziţia (Lin,Col)(Lin, Col), distanţa pe care el o parcurge va fi LiLin+CiCol|L_i - Lin| + |C_i - Col|.

Cerință

Scrieţi un program care să rezolve următoarele două cerințe:

  1. determină o linie LinLin, astfel încât pentru alinierea soldaților pe pozițiile 1,2,,S1, 2, \dots , S de pe linia LinLin, suma distanţelor parcurse de aceştia să fie minimă;
  2. determină o linie LinLin și o coloană ColCol, astfel încât pentru alinierea soldaților pe linia LinLin pe coloanele Col,Col+1,,Col+S1Col, Col + 1, \dots, Col + S - 1, suma distanţelor parcurse de aceştia să fie minimă.

Date de intrare

Fişierul de intrare soldati.in conține pe prima linie 4 valori naturale CC, nn, mm, SS, separate prin câte un spațiu, reprezentând cerința care trebuie să fie rezolvată, numărul de linii, numărul de coloane, respectiv numărul de soldați. Următoarele SS linii conțin pozițiile celor SS soldați, câte un soldat pe o linie, pozițiile fiind descrise prin două numere naturale LL, CC separate printr-un spațiu, reprezentând linia, respectiv coloana.

Date de ieșire

Fişierul de ieşire soldati.out va conține pe prima linie un număr natural DminD_{min} reprezentând distanța totală minimă parcursă pentru ca soldații să se alinieze conform cerinței CC din fișierul de intrare. Dacă C=1C = 1 pe cea de a doua linie va fi scris un număr natural LinLin reprezentând linia pe care se face alinierea. Dacă C=2C = 2, pe cea de-a doua linie se vor scrie două numere naturale separate prin spaţiu LinLin, ColCol, reprezentând linia pe care se va face alinierea, respectiv coloana de la care soldații încep să se alinieze. În cazul în care există mai multe linii pe care soldații se pot alinia parcurgând distanţă totală minimă, se va afișa cea mai mică dintre ele. Pentru C=2C = 2, în cazul în care există mai multe coloane ColCol începând cu care soldații se pot alinia pe linia LinLin parcurgând distanţă totală minimă, se va afișa cea mai mică dintre ele.

Restricții și precizări

  • 2n,m1062 \leq n, m \leq 10^6
  • 1Smin(m,105)1 \leq S \leq \min(m, 10^5)
  • Pozițiile inițiale ale soldaților sunt distincte.
# Punctaj Restricții
1 5 Soldații se află inițial pe aceeași linie.
2 14 2n,m1 5002 \leq n, m \leq 1 \ 500
3 12 C=1C = 1, 1 500<n,m10 0001\ 500 < n, m \leq 10 \ 000
4 33 C=1C = 1
5 12 C=2C = 2, 1 500<n,m10 0001\ 500 < n, m \leq 10 \ 000
6 24 C=2C = 2

Exemplul 1

soldati.in

1 16 17 11
2 3
6 6
6 8
6 9
6 10
6 11
9 6
11 9
13 8
13 6
15 9

soldati.out

54
6

Explicație

Mai jos este reprezentat platoul și modul în care soldații se rearanjează

Exemplul 2

soldati.in

2 16 17 11
2 3
6 6
6 8
6 9
6 10
6 11
9 6
11 9
13 8
13 6
15 9

soldati.out

46
6 3

Explicație

  • 2 36 32 \ 3 \rightarrow 6 \ 3
  • 44 pași pe coloana 33
  • 6 66 46 \ 6 \rightarrow 6 \ 4
  • 22 pași pe linia 66
  • 6 86 76 \ 8 \rightarrow 6 \ 7
  • 11 pas pe linia 66
  • 6 96 96 \ 9 \rightarrow 6 \ 9
  • 00 pași (stă pe loc)
  • 6 106 126 \ 10 \rightarrow 6 \ 12
  • 22 pași pe linia 66
  • 6 116 136 \ 11 \rightarrow 6 \ 13
  • 22 pași pe linia 66
  • 9 66 59 \ 6 \rightarrow 6 \ 5
  • 33 pași pe coloana 66 și 11 pas pe linia 66
  • 11 96 1011 \ 9 \rightarrow 6 \ 10
  • 55 pași pe coloana 99 și 11 pas pe linia 66
  • 13 86 813 \ 8 \rightarrow 6 \ 8
  • 77 pași pe coloana 88
  • 13 66 613 \ 6 \rightarrow 6 \ 6
  • 77 pași pe coloana 66
  • 15 96 1115 \ 9 \rightarrow 6 \ 11
  • 99 pași pe coloana 99 și 22 pași pe linia 66

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