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

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


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

O firmă de construcţii imobiliare a achiziţionat recent un teren dreptunghiular de forma unei fâşii de dimensiune 1×N, fiind apoi împărţit în parcele de dimensiune 1x1. Pe fiecare dintre cele N parcele de dimensiune 1×1 firma poate construi câte o casă, dacă există clienţi interesaţi.
Terenul este amplasat pe una dintre cele şapte coline ale unui oraş vestit. Astfel, dacă numerotăm parcelele cu numere consecutive de la 1 la N, altitudinile asociate acestor parcele vor fi în ordine strict crescătoare până la o anumită poziţie, unde se atinge altitudinea maximă a acestui teren, iar pentru poziţiile următoare altitudinile sunt în ordine strict descrescătoare, fiind de partea cealaltă a vârfului colinei. Mai precis, dacă notăm în ordine cu h1, h2, ..., hN altitudinile parcelelor, există un indice vf, 1≤vf≤N, astfel încât h1<h2<...hvf-1<hvf>hvf+1>...>hN.
Clienţii au înregistrat deja cereri de construcţie pentru M case. Fiecare dintre aceste cereri specifică însă o restricţie mai ciudată, şi anume faptul că doresc ca parcela de construcţie să se afle exact la altitudinea qj (1≤j≤M).

Cerinţă

Scrieţi un program care determină pentru fiecare cerere j (1≤j≤M) dacă firma poate îndeplini restricţia respectivă, mai exact dacă există măcar o parcelă i (1≤i≤N) pentru care hi=qj.

Date de intrare

Fişierul de intrare colina.in conţine pe prima linie două numere naturale N şi M ce reprezintă numărul de parcele şi respectiv numărul de cereri înregistrate. Pe a doua linie se găsesc N numere naturale h1 h2 ... hN, reprezentând altitudinile parcelelor. Pe ultima linie se găsesc M numere naturale q1 q2 ... qM, reprezentând altitudinile din cererile clienţilor. Numerele aflate pe aceeaşi linie sunt separate prin spaţii.

Date de ieşire

Fişierul colina.out va conţine M linii. Pe linia j (1≤j≤M) va fi scris mesajul NU, dacă nu este posibilă construirea unei case la altitudinea qj. În caz contrar, pe linia j va fi scris mesajul DA, urmat de un spaţiu, apoi de indicii i pentru care hi=qj, separaţi de asemenea prin câte spaţiu şi scrişi în ordine crescătoare.

Restricţii

1 ≤ N, M ≤ 100 000
0 < hi, qj < 231 pentru orice 1≤i≤N şi 1≤j≤M
• Valorile qj sunt distincte (nu s-au acceptat cereri identice).
• Pentru teste în valoare de 20 puncte: N×M ≤ 100 000
• Pentru teste în valoare de 40 puncte: hmax ≤ 100 000 unde hmax este altitudinea maximă a parcelelor.

Exemple

colina.incolina.out
6 5 1 5 9 7 2 1 5 6 1 9 4 DA 2 NU DA 1 6 DA 3 NU

autor: Stud. Paul Diac
propunător: Prof. Emanuela Cerchez
Colegiul Naţional ″Emil Racoviţă″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la OMI Iaşi 2014: prize, conturi, nrdiv, doitrei, rebus1, cristal, grindina, foto, tabla, numere12, daruri
De acelaşi autor: mod3, robot, excursie, cantor, fibgcd, acoperire, piscina, barci
Despre vector: trei, simetric, egal, ruleta, pod, uscat, afise, an, bunici, cursa, onu, tramvai, cadou, kpal, expresie, piticot, roci, petrol, grad, ruleta2, ecran, palma, concurs, holo, ab2, tren2, cifre, mgo, firma, anagrame, joc2, br, maxim, astre, numere2, baby, zapada, hd, startrek, vecini2, drept, teatru, tir, patrate2, nr, cifra, repeat, unu, criptare, ratb, placi, sume3, turist, matrice3, pavaj, sume, kafka, bacan, spair, grup, friends2, bitslang, fisc, scor2, cat, nr3, chimie2, zid, politics, submat, reteta2, rezervatie, creioane, felinare, 2numere, exp, scoici, patrate1, playlist, sqr, carte, oua, turn, ants, div3, jeton, politic, trecere, maraton, zaruri, suma1, mere1, agitatie, lacuri, secv, sotron, triunghi, carti1, spioni, kalah, excursia, matricea, maxq, oras, furnici, baschet, ingerasi, numar1, prieteni, aritma, cezar, bifo, pal, seceta, bare, soricel1, antena, avere, paianjen, bloc, schi, suma3, fractie, tunel, pepsi, prefix, tren3, avion, premii1, csir, top, bsir, secvente, cod4, cuburi3, limbaj, panouri, sant1, zumzi, sport1, baschet1, mere3, powerpuff, placare, sir4, volei1, tabel, ocr, numere7, lacusta, flori, pluton, elfi, mare, grupe1, maroco, cartonas, cabina, case, cod5, furnica, numere8, paritate, comoara1, exponent, control, exp1, joc13, popas, reactivi, siruri1, vanatoare, submult, text1, taxe1, visul, paranteze, puncte3, cub3, numere9, panglica, pietre, poartas, sume2, bal, secvsir, vot, prefix1, accesibil, palc, standard, bursa, meteo, jetoane, printesa, palindrom, joker, matriosca, loto, cuvant, cladiri1, secvente1, zar, tren4, asociativ, lego, medalii, figura, joc14, neuroni, char, dartz, turism1, calorii, xor1, paltrei, album, livada1, colorare, greutati, brazi, submatrix1, plaja, cd1, cifru3, permutare, miere, tetris1, conferinta, atelier, radical, bileprime, nx, atletism, sumb, minmax, sumacifre, jocprim, sircifre, cmmdcsecv, secvb, siruri3, cifru4, vase, carte1, grad1, litere, magic6, macheta, butoane, ec, stalpi2, fagure, goe, papusa, taburet, mesaj3, zar1, joc16, talent, joc18, cos, punctfix, risipa, liste, triburi, nr0, oneton, nor, nrpomi, paisprezece, anagramabil, zuma, joc20, dale, perechi2, consiliu, becuri2, codpatrat, adprod, qtri, reconst, arme, triunghi4, deal, ozn1, cifru5, flori1, elicop, roata, trifoi, maxbin, culori2, numar5, bile6, proiecte, alune, cuburi4, sstabil, intersectii, copaci2, 7segmente, amedie, drept2, divider, eliminare, matd3, prodnr, fraze, vectori1, compar, unific, galbeni, clepsidru, calcule, puncte6, maxp, cursa1, secvp, swap, extraprime, onigim, divizori1, remi1, tetris3, amestec, eoliene, split, momente, secvente2, ausoara, aranjare2, vintage, binremove, sminus, subsets, interclasare, palindromuri, doitrei, rebus1, tcif, munte3, triunghi6, schi1, rascoala, solitar, praslea, vot2, tema, sprime, sir2dif, aperm, unudoi, prajituri, tan, concurs4, ech, arc, dominant, ordine, tv1, nebuni, sort2dist, lightbot, iepuras1, castig
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, puncte1, 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, ssk, robotics, cabana
surse trimise | ajutor