.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » puncte1

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
puncte1


Timp maxim de execuţie / test:
0.6s
Memorie totala disponibilă / stivă:
5MB / 1MB

Zăhărel a desenat pe o foaie de hârtie N puncte în plan. Curios din fire, şi-a ales încă M puncte pe axa Ox şi s-a întrebat pentru fiecare dintre cele M puncte de pe axa Ox care dintre cele N puncte este cel mai apropiat (situat la distanţă minimă). Se consideră că distanţa dintre două puncte (x1,y1) şi (x2,y2) este (x1-x2)2+(y1-y2)2.

Cerinţă

Scrieţi un program pentru Zăhărel care să determine pentru fiecare dintre cele M puncte de pe axa Ox, care este distanţa la cel mai apropiat punct dintre cele N desenate pe hârtie.

Date de intrare

Fişierul de intrare puncte1.in conţine pe prima linie numerele naturale N M separate prin spaţii. Fiecare dintre următoarele N linii conţine câte o pereche de numere naturale nenule x y, separate prin spaţii, reprezentând coordonatele celor N puncte (în ordinea abscisă, ordonată). Fiecare dintre următoarele M linii conţine câte un număr natural x, reprezentând abscisele (coordonatele pe axa Ox) ale celor M puncte.

Date de ieşire

Fişierul de ieşire puncte1.out va conţine M linii. Pe linia i va fi scris un număr natural reprezentând distanţa la cel mai apropiat punct dintre cele N de pe hârtie pentru al i-lea punct de pe axa Ox (considerând ordinea punctelor din fişierul de intrare).

Restricţii

1 ≤ N ≤ 100 000
1 ≤ M ≤ 200 000

Toate coordonatele din fişierul de intrare sunt numere naturale din intervalul [1,109]
Cele N puncte din fişierul de intrare sunt sortate după coordonata x crescător, iar în cazul în care două puncte au aceeaşi abscisă, ele sunt ordonate crescător după coordonata y.
Pentru 50% din teste N≥90000 şi M≥150000.

Exemple

puncte1.inpuncte1.outExplicaţii
3 2 1 1 5 1 10 2 2 7 2 5 Pe hârtie au fost desenate 3 puncte, având coordonatele (1,1), (5,1), respectiv (10,2). Pe axa Ox se află 2 puncte, având abscisa 2, respectiv 7.
Distanţa minimă dintre punctul de pe axa Ox de abscisă 2 este 2 (cel mai apropiat punct fiind cel de coordonate (1,1)).
Distanţa minimă dintre punctul de pe axa Ox de abscisă 7 este 5 (cel mai apropiat punct fiind cel de coordonate (5,1)).



autor: Mircea Paşoi
propunător: Prof. Marinel Şerban
Liceul de Informatică “Grigore Moisil”
marinel_serban@yahoo.com
Articole recomandate
Probleme recomandate
De la ONI 2007: ceas, numere4, cifru, oua, turn, div3, jeton, politic, trecere, agitatie, lacuri, secv, sotron, triunghi, apel, castel, excursia, matricea, randuri, zidar, desc, felinar, joc6, log, maxq, tric, cover, dist, munte1, promo, role
De acelaşi autor: copaci, ab2, plimbare, cuvinte, pioni, reinvent, numere3, perm, criptare, sume, gramezi, nr2, rev, paintball, matricea, emax, turism, casute, dep
Despre stiva: sl, teren, reactii, complex, auto, bile3, chimie2, vile, masina3, matrice1, dir, stiva, munte2, perle, basm, predecesor, expresie1, telecab, expresie2, liste, intervale, jocs, expeval, copaci2, plus, azeval, unific, swap, stiva1, ecp, charlie
Despre căutare binară: gropi, pod, uscat, checkin, copaci, aven, br, furtuna, livada, numar, matrice, sume, bacan, toys, chimie2, trafic, ants, multiplu, ghici, sirag1, tabara, centru, harta1, salvare, spion, poze, dist1, patrate5, resturi, lanterna, sea2, vot, standard, cantor, medalii, binperm, mobil, stalpi1, expo, miere, conferinta, subs, pack, obstacole, dag, acoperire, verigi, bradut2, triburi, intervale, mijloc, patru, eliminare, vectori1, calcule, secvp, dreapta, colina, ssk, robotics, cabana
Despre sortare: harta, index, sort, concurs, baby, patrate2, repeat, turist, bacan, toys, scor2, chimie2, politics, submat, scoici, ham, jokes, trecere, multiplu, paralel, tvshow, sirag1, tabara, munte, sport, sume1, schi, granita, tren3, sant1, volei1, poze, maroco, dreptc, dist1, tir1, control, mosia, popas, reactivi, siruri1, coach, anag, matrice4, sume2, urgenta, basm, vot, balcon, joc14, cerc, k1, segm, calorii, ordonare, greutati, arctir, macheta, poligon4, centrala, robot4, lcdr, maxviz, sdmin, qtri, arme, flori1, parc1, mijloc, bile6, proiecte, patru, drept2, subsecvente, cursa1, eoliene, vintage, dreapta, riglef, rebus1, rascoala, zimeria, praslea, aperm, unudoi, gropi1, piscina, restaurare, cabana, culori3
surse trimise | ajutor