Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2010-01-12 17:13:25.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:cmap.in, cmap.outSursăArhiva educationala
AutorArhiva EducationalaAdăugată deCoroian_DavidCoroian David Coroian_David
Timp execuţie pe test0.2 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Cele mai apropiate puncte din plan

Se dau N puncte în plan cu coordonate numere întregi. Sa se determine distanta intre cele mai apropiate 2 puncte.

Date de intrare

Fişierul de intrare cmap.in conţine pe prima linie un număr N, cu semnificaţia din enunţ. Pe următoarele N linii se vor afla doua numere Xi şi Yi, coordonatele celui de-al i-lea punct.

Date de ieşire

În fişierul de ieşire cmap.out se va afişa distanta intre cele mai apropiate 2 puncte.

Restricţii

  • 1 ≤ N ≤ 100 000
  • -1 000 000 000 ≤ Xi ≤ 1 000 000 000
  • -1 000 000 000 ≤ Yi ≤ 1 000 000 000
  • Oricare doua puncte sunt distincte.
  • Pentru 20% din teste 1 ≤ N ≤ 1 000

Exemplu

cmap.incmap.out
10
26 77
12 37
14 18
19 96
71 95
91 9
98 43
66 77
2 75
94 91
18.681542

Indicaţii de rezolvare

O soluţie brute-force de complexitate O(N*N) obţine 20 de puncte.
O alta soluţie de complexitate O(N*N) sortează numerele crescător după abscisa şi apoi foloseşte un algoritm divide et impera. Se împart cele N puncte în doua grupuri st şi dr, se calculează st_min şi dr_min, distanta intre cele mai apropiate puncte din grupul st şi dr, apoi se calculează st_dr_min, distanta intre cele mai apropiate 2 puncte, unul aparţinând grupului st şi altul lui dr. Distanta intre cele mai apropiate puncte o sa fie minim(st_min, dr_min, st_dr_min).

Aplicaţii

  1. Harta2
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?