ConcursC++17

Segmente

Considerăm NN segmente în planul XOY. Segmentele sunt fie orizontale (paralele cu axa OX), fie verticale (paralele cu axa OY) şi au capetele în puncte de coordonate întregi. De asemenea, nu există două segmente orizontale situate pe aceeaşi dreaptă şi nici două segmente verticale situate pe aceeaşi dreaptă. Tuturor segmentelor li se poate aplica simultan o operaţie de prelungire la ambele capete cu o valoare întreagă DD. Pentru orice segment, dacă lungimea este LL, atunci după prelungire dimensiunea sa este L+2⋅DL + 2 \cdot D.

Cerinţă

Să se determine valoarea minimă DD cu care trebuie prelungite segmentele astfel încât după prelungire segmentele să închidă cel puţin un dreptunghi.

Date de intrare

Pe prima linie a fişierului segmente.in se află un număr natural NN reprezentând numărul de segmente. Pe fiecare din următoarele NN linii se găsesc câte patru numere întregi x1y1x2y2x_1 y_1 x_2 y_2. Primele două reprezintă un capăt al segmentului, iar ultimele două celălalt capăt.

Date de ieșire

Pe prima linie a fişierului segmente.out, se va scrie un număr natural DD reprezentând dimensiunea minimă necesară prelungirii tuturor segmentelor pentru a se forma cel puţin un dreptunghi.

Restricții și precizări

  • 4≤N≤1 0004 ≤ N ≤ 1 \ 000
  • capetele segmentelor sunt numere întregi din intervalul [−500 000 000,500 000 000][-500 \ 000 \ 000, 500 \ 000 \ 000]
  • Orice segment are lungimea iniţială de cel puţin 11
  • Pentru datele de intrare, nu există iniţial niciun dreptunghi deja format; de asemenea, vor exista cel puţin 22 segmente verticale şi cel puţin două orizontale
  • Se garantează că există o soluţie cu 1≤D≤1 000 000 0001 ≤ D ≤ 1 \ 000 \ 000 \ 000
  • Pentru 50%50\% din teste, N≤200N ≤ 200

Exemplu

segmente.in

5
1 2 1 3
3 2 4 2
2 3 2 5
5 2 5 7
5 6 7 6

segmente.out

3

Explicație

Figura 1 din enunțul original al problemei Segmente.Figura 1 din enunțul original al problemei Segmente.Mărește schema ↗

Segmentele iniţiale sunt cele îngroşate, cu linie punctată sunt extinderile cu 33 unităţi la ambele capete ale tuturor segmentelor, iar haşurat este marcat dreptunghiul care s-a format după prelungirea cu D=3D = 3.

Sursă și autori

ONI 2011, clasele 10. Dan Pracsiu.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑