10
GInfo nr. 14/4 - aprile 2004 10 probleme 31 martie 2004, Praga Finala ACM Pe data de 31 martie a avut loc la Praga etapa finalã a concursului de programare pe echipe destinat studenþilor ACM. La aceastã competiþie au participat 73 de echipe de studenþi din toatã lumea. Aceste echipe au fost selectate dintr-un numãr de 3150 de echipe din 1411 universitãþi în urma fazelor regionale ale concursului. În continuare vã prezentãm versiunea în limba românã, realizatã de redacþa GInfo, a celor 10 probleme propuse spre rezolvare la acest concurs. P040401: Carl Furnica Furnicile lasã urme chimice pe pãmânt pentru a marca dru- mul pe care îl strãbat pentru ca alte furnici sã le urmeze. De obicei, aceste urme marcheazã un drum drept, dar într- o colonie de furnici existã o furnicã puþin neobiºnuitã pe nume Carl. Carl va merge destul de des în zig-zag fãrã nici un motiv, uneori intersecându-ºi traseul de mai multe ori. Când alte furnici ajung la o intersecþie, ele urmeazã întotdeauna drumul cu cel mai puternic miros, care este ºi cel mai recent drum care indicã furnicilor în ce direcþie sã pãrãseascã intersecþia respectivã. Furnicile au lungimea de un centimetru, înainteazã cu viteza de 1 cm/s ºi urmeazã cu exactitate drumurile (când ocolesc un colþ, descriu unghiuri de 90 de grade ). Furnici- le nu se pot cãlca sau depãºi unele pe altele. Dacã douã furnici ajung într-un punct dintr-o inter- secþie în acelaºi timp, atunci are prioritate de trecere cea care a parcurs cel mai lung drum fãcut de Carl. Dacã nu existã o astfel de furnicã, atunci are prioritate cea care a aº- teptat cel mai mult timp în intersecþie. Carl iese de sub pãmânt în originea sistemului de coor- donate la momentul de timp t = 0 secunde. Apoi el cons- truieºte drumul, iar la sfârºit intrã sub pãmânt. Restul fur- nicilor urmeazã drumul la intervale regulate de timp. Dându-se descrierea drumului lui Carl ºi momentele când restul furnicilor urmeazã drumul, trebuie sã determi- naþi în cât timp mulþimea de furnici va termina de parcurs drumul. Se garanteazã faptul cã toate furnicile vor parcur- ge drumul în întregime. Date de intrare Fiºierul de intrare carl.in conþine mai multe cazuri de test. Prima linie a fiºierului de intrare conþine un singur numãr întreg care reprezintã numãrul de teste care urmea- zã. Datele fiecãrui test sunt scrise pe mai multe linii. Astfel, prima linie a unui test conþine trei numere întregi pozitive n, m ºi d, separate între ele printr-un spaþiu, care reprezin- tã numãrul de segmente ale drumului, numãrul de furnici care urmeazã drumul (inclusiv Carl), respectiv intervalul de timp la care o furnicã iese din pãmânt ºi urmeazã dru- mul. Carl porneºte la momentul de timp 0, urmãtoarea fur- nicã porneºte dupã d secunde, urmãtoarea dupã 2 · d se- cunde º.a.m.d. Atunci când canalul de ieºire este blocat, furnicile vor ieºi din pãmânt cât mai repede posibil, în or- dinea corectã. Fiecare dintre urmãtoarele n linii ale unui test conþine douã numere întregi x ºi y, separate între ele printr-un sin- gur spaþiu, care reprezintã coordonatele capãtului unui seg- ment din drumul lui Carl, în ordinea în care Carl constru- ieºte drumul. Originea primului segment este datã de punctul de co- ordonate (0, 0), iar originea oricãrui alt segment este datã de capãtul segmentului precedent. Pentru simplitate, Carl cãlãtoreºte tot timpul pe seg- mente paralele cu axele de coordonate ºi nici un capãt al unui segment nu se aflã pe alt segment decât dacã este unul dintre capetele acestuia din urmã. Date de ieºire Pentru fiecare test rezultatele trebuie furnizate la ieºirea standard, dupã descrierea urmãtoare: Case C: Carl finished the path at time t1 The ants finished in the following order:

ACM 2004

Embed Size (px)

DESCRIPTION

ACM 2004

Citation preview

  • GIn

    fo n

    r. 1

    4/4

    - a

    pri

    le 2

    004

    10

    pro

    ble

    me

    31 martie 2004, Praga

    Finala ACM Pe data de 31 martie a avut loc la Praga etapa final a concursului deprogramare pe echipe destinat studenilor ACM. La aceast competiie auparticipat 73 de echipe de studeni din toat lumea. Aceste echipe au fostselectate dintr-un numr de 3150 de echipe din 1411 universiti n urmafazelor regionale ale concursului. n continuare v prezentm versiunea nlimba romn, realizat de redaca GInfo, a celor 10 probleme propuse sprerezolvare la acest concurs.

    P040401: Carl Furnica Furnicile las urme chimice pe pmnt pentru a marca dru-mul pe care l strbat pentru ca alte furnici s le urmeze.De obicei, aceste urme marcheaz un drum drept, dar ntr-o colonie de furnici exist o furnic puin neobinuit penume Carl. Carl va merge destul de des n zig-zag frnici un motiv, uneori intersecndu-i traseul de mai multeori. Cnd alte furnici ajung la o intersecie, ele urmeazntotdeauna drumul cu cel mai puternic miros, care este icel mai recent drum care indic furnicilor n ce direcie sprseasc intersecia respectiv.

    Furnicile au lungimea de un centimetru, nainteaz cuviteza de 1 cm/s i urmeaz cu exactitate drumurile (cndocolesc un col, descriu unghiuri de 90 de grade ). Furnici-le nu se pot clca sau depi unele pe altele.

    Dac dou furnici ajung ntr-un punct dintr-o inter-secie n acelai timp, atunci are prioritate de trecere ceacare a parcurs cel mai lung drum fcut de Carl. Dac nuexist o astfel de furnic, atunci are prioritate cea care a a-teptat cel mai mult timp n intersecie.

    Carl iese de sub pmnt n originea sistemului de coor-donate la momentul de timp t = 0 secunde. Apoi el cons-truiete drumul, iar la sfrit intr sub pmnt. Restul fur-nicilor urmeaz drumul la intervale regulate de timp.

    Dndu-se descrierea drumului lui Carl i momentelecnd restul furnicilor urmeaz drumul, trebuie s determi-nai n ct timp mulimea de furnici va termina de parcursdrumul. Se garanteaz faptul c toate furnicile vor parcur-ge drumul n ntregime.

    Date de intrareFiierul de intrare carl.in conine mai multe cazuri detest. Prima linie a fiierului de intrare conine un singur

    numr ntreg care reprezint numrul de teste care urmea-z.

    Datele fiecrui test sunt scrise pe mai multe linii. Astfel,prima linie a unui test conine trei numere ntregi pozitiven, m i d, separate ntre ele printr-un spaiu, care reprezin-t numrul de segmente ale drumului, numrul de furnicicare urmeaz drumul (inclusiv Carl), respectiv intervalulde timp la care o furnic iese din pmnt i urmeaz dru-mul.

    Carl pornete la momentul de timp 0, urmtoarea fur-nic pornete dup d secunde, urmtoarea dup 2 d se-cunde .a.m.d. Atunci cnd canalul de ieire este blocat,furnicile vor iei din pmnt ct mai repede posibil, n or-dinea corect.

    Fiecare dintre urmtoarele n linii ale unui test coninedou numere ntregi x i y, separate ntre ele printr-un sin-gur spaiu, care reprezint coordonatele captului unui seg-ment din drumul lui Carl, n ordinea n care Carl constru-iete drumul.

    Originea primului segment este dat de punctul de co-ordonate (0, 0), iar originea oricrui alt segment este dat decaptul segmentului precedent.

    Pentru simplitate, Carl cltorete tot timpul pe seg-mente paralele cu axele de coordonate i nici un capt alunui segment nu se afl pe alt segment dect dac este unuldintre capetele acestuia din urm.

    Date de ieirePentru fiecare test rezultatele trebuie furnizate la ieireastandard, dup descrierea urmtoare:Case C:Carl finished the path at time t1The ants finished in the following order:

  • pro

    blem

    eG

    Info

    nr. 1

    4/4

    - ap

    rilie 2004

    11

    a1 a2 a3 ... amThe last ant finished the path at time t2unde C reprezint numrul testului (ncepnd cu 1); a1,a2, ..., am reprezint numerele de ordine ale furnicilor nordinea n care acestea termin de parcurs drumul i intrnapoi n pmnt; t1 i t2 reprezint momentele de timpla care Carl i ultima furnic termin de parcurs drumul.

    Rezultatele furnizate pentru teste trebuie separate n-tre ele printr-o linie vid.

    Restricii i precizri 1 n 50; 1 m, d 100; coordonatele care reprezint capetele segmentelor dru-

    mului lui Carl sunt numere ntregi cuprinse ntre -100 i100.

    Exemplucarl.in24 7 40 42 42 2-2 24 7 20 42 42 2-2 2

    Ieire standardCase 1:Carl finished the path at time 13The ants finished in the following order:0 2 1 3 4 5 6The last ant finished the path at time 29

    Case 2:Carl finished the path at time 13The ants finished in the following order:0 4 1 5 2 6 3The last ant finished the path at time 19

    P040402: Heliportn aceast er a vitezei, companiile investesc n heliporturipentru a reduce timpul cltoriilor membrilor conducerii.Heliporturile sunt de obicei zone de aterizare circulare pla-sate pe acoperiurile sediilor principale ale companiilor.

    Sarcina voastr este s scriei un program care deter-min raza cea mai mare a unui heliport circular care poatefi construit pe acoperiul unei cldiri care are forma unuipoligon simplu.

    Deoarece aceasta este doar faza de proiectare a con-struciei, programul trebuie s determine doar raza heli-portului.

    Date de intrareFiierul de intrare heliport.in conine mai multe teste.

    Datele pentru fiecare test constau n dou linii. Primalinie conine un numr ntreg n care reprezint numrul delaturi ale poligonului care descrie forma acoperiului cl-dirii. Cea de-a doua linie conine n perechi de forma (m,d).

    Presupunnd c acoperiul este desenat n plan, m esteun numr ntreg care reprezint lungimea unei laturi i deste un caracter care reprezint direcia n care se va desenaaceast latur. Desenarea laturilor se va face n sens trigono-metric pornind de la punctul n care s-a ajuns cu desenatulla pasul anterior. Caracterul d poate avea valorile U, R, Dsau L care semnific faptul c latura se va desena n sus, ladreapta, n jos sau la stnga.

    Segmentele care reprezint laturile poligonului sunt pa-ralele cu axele de coordonate i sunt date n ordine trigo-nometric. Poziia de nceput a desenului este dat de punc-tul de coordonate (0, 0).

    Dup ultimul test din fiierul de intrare se va afla va-loarea 0 pe o singur linie.

    Date de ieirePentru fiecare test din fiierul de intrare se va tipri la iei-rea standard, pe o linie numrul de ordine al acestuia (n-cepnd cu 1) i un numr real rotunjit la dou zecimale exac-te care reprezint raza heliportului care poate fi construit.

    Liniile furnizate la ieirea standard trebuie separatentre ele printr-o linie vid i trebuie s aib formatul:Case Number # radius is: runde # reprezint numrul testului, iar r este raza determi-nat pentru heliportul de la testul respectiv.

    Restricii i precizri 4 n 20; lungimea unei laturi a poligonului care descrie forma

    acoperiului cldirii este un numr ntreg cuprins ntre 1i 50.

    Exempluheliport.in42 R 2 U 2 L 2 D1010 R 10 U 10 L 10 U 10 R 5 U 30 L 20 D 20 R 5 D0

    Ieire standardCase Number 1 radius is: 1.00

    Case Number 2 radius is: 10.00

    Explicaien figura 1 se poate observa harta acoperiului cldirii pen-tru cel de-al doilea set de date, iar raza maxim a helipor-tului este 10.

  • GIn

    fo n

    r. 1

    4/4

    - a

    pri

    le 2

    004

    12

    pro

    ble

    me

    Figura 11

    P040403: Imaginea este totulCompania la care lucrai construiete roboi care pot trans-porta obiecte uoare. Un astfel de robot trebuie s aib in-teligena necesar pentru a determina dac un anumit obiecteste suficient de uor pentru a putea fi transportat. Acestlucru se realizeaz prin fotografierea obiectului din celease direcii nord, sud, est, vest, sus i jos i apoi, prin cal-cularea unei limite superioare a greutii obiectului n func-ie de aceste imagini.

    Sarcina voastr este s scriei un program care realizea-z acest lucru pentru robot. Se poate presupune c fiecareobiect este format din cubulee de dimensiune 1 1 1 dis-puse ntr-o matrice tridimensional de dimensiune N N N. Din aceast matrice tridimensional unele cubuleepot lipsi. Fiecare cubule de dimensiune 1 1 1 are greu-tatea de un gram i este desenat cu o singur culoare.

    Obiectul nu este neaprat conex.

    Date de intrareDatele de intrare se citesc din fiierul image.in care con-ine mai multe teste. Pentru fiecare test se vor citi mai mul-te linii. Pe prima linie corespunztoare unui test se afl unnumr natural N care reprezint dimensiunile cubului.

    Urmtoarele N linii conin cele ase imagini de dimen-siune N N n ordinea fa, stnga, spate, dreapta, sus ijos. Pe fiecare dintre aceste N linii se afl ase grupuri, se-parate ntre ele prin spaiu, a cte N caractere fiecare. Ungrup reprezint o linie a uneia dintre cele ase imagini. Ca-racterele imaginilor pot fi litere mari ale alfabetului en-glezesc sau caracterul "."(punct). Literele mari descriu cu-loarea cubuleului respectiv, iar caracterul "." indic fap-tul c n zona respectiv este spaiu liber.

    Dup ultimul test se va afla valoarea 0 pe o singur linie.

    Date de ieireLa ieirea standard se vor afia greutile obiectelor n or-dinea n care acestea au fost citite folosind formatul: Maxi-mum weight: # gram(s), unde # reprezint greutatea ma-xim pe care o poate avea un obiect.

    Restricie 1 N 10;

    Exempluimage.in3.R. YYR .Y. RYY .Y. .R.

    GRB YGR BYG RBY GYB GRB.R. YRR .Y. RRY .R. .Y.2ZZ ZZ ZZ ZZ ZZ ZZZZ ZZ ZZ ZZ ZZ ZZ0

    Ieire standardMaximum weight: 11 gram(s)Maximum weight: 8 gram(s)

    P040404: Nesiguran n PragaPraga este un ora periculos pentru dezvoltatorii de sche-me criptografice. n anul 2001 o echip de cercettori dinPraga au anunat cteva lipsuri ale faimosului protocol decriptare PGP (Pretty Good Privacy). n anul 2003 au fostdescoperite lipsuri ale protocoalelor SSL i TLS (SecureSockets Layer i Transport Layer Security). Cu toate aces-tea, reputaia Pragi referitoare la protocoalele criptogra-fice nu i-a mpiedicat pe criptograful amator i ncp-natul Immanuel Kant-DeWitt (cunoscut de prietenii si caI. Kant-DeWitt) s-i aduc ultima sa schem de criptarela Praga.

    Aceast schem funcioneaz astfel: cnd se transmiteun mesaj p de lungime n, transmitorul alege un numrntreg m 2 n i numerele ntregi s, t, i i j, unde 0 s, t,i, j < m i i < j. m reprezint lungimea textului cifrat c careva fi transmis.

    Iniial c conine m locuri libere. Prima liter a mesa-jului p va fi scris pe poziia s din c. A k-a (k 2) liter dinp va fi pus n c cu i poziii libere mai departe de cea n carea fost pus cea de-a (k-1)-a liter a lui p, numrnd poziiii de la nceputul lui c dac este necesar. Poziiile careconin litere nu sunt considerate a fi libere.

    De exemplu, dac mesajul este PRAGUE i s = 1, i = 6 im = 15 atunci literele sunt plasate n c astfel:

    A P _ U _ _ _ _ R G _ _ E _ _0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

    ncepnd cu poziia t sau prima poziie liber ncepndcutarea cu prima poziie din dreapta lui t, mesajul p maieste introdus nc o dat n c, dar de data aceasta numrndcte j poziii ntre litere.

    De exemplu, dac t = 0 i j = 8 a doua copie a lui p esteinserat astfel (ncepnd cu poziia 2, care este prima pozi-ie liber de la t = 0):

    A P P U R _ A U R G E G E _ _0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

    n final, poziiile care rmn libere sunt ocupate cu li-tere alese aleator:

    A P P U R A A U R G E G E W E0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

    Kant-DeWitt este de prere c duplicarea mesajuluicombinat cu utilizarea de litere aleatoare va pcli sche-

  • pro

    blem

    eG

    Info

    nr. 1

    4/4

    - ap

    rilie 2004

    13

    mele de decriptare care se bazeaz pe frecvena de apariiea literelor i c, dac nu se cunosc valorile s i i, nimeni nupoate afla care este mesajul original.

    Sarcina voastr este s i demonstrai lui Kant-DeWitt cnu are dreptate. Dndu-se un numr de texte cifrate (i nicio alt informaie adiional), determinai cel mai lung me-saj care se poate codifica folosind metoda lui Kant-DeWitt.

    Date de intrareFiierul de intrare insecure.in conine mai multe mesajecifrate, cte unul pe linie. Fiecare mesaj este format din li-tere mari ale alfabetului englezesc i nu este precedat sausuccedat de spaii. Fiecare mesaj va avea lungimea cuprinsntre 1 i 40 de caractere.

    Ultimul mesaj cifrat va fi urmat de o linie pe care se vaafla litera X.

    Date de ieireLa ieirea standard, pentru fiecare mesaj cifrat se va afianumrul de ordine al acestuia i cel mai lung ir de carac-tere care ar fi putut fi criptat sub forma prezent n fiierulde intrare. Dac exist mai mult de un ir de caractere delungime maxim care pot fi codificate la fel, va trebui stiprii fraza "Codeword not unique".

    Fiecare linie din fiierul de ieire va avea formatul:Code #: ssauCode #: Codeword not uniqueunde # reprezint numrul de ordine al mesajului cifrat nfiierul de intrare, iar s reprezint mesajul original.

    Exempluinsecure.inAPPURAAURGEGEWEABABABABTHEACMPROGRAMMINGCONTESTX

    Ieire standardCode 1: PRAGUECode 2: Codeword not uniqueCode 3: Codeword not unique

    P040405: Date care se suprapunUn grup de cercettori dezvolt un program pe calculatorcare va extrage date mai vechi, legate de cotaiile bursierede pe pia, folosind un serviciu care cere o tax fix pen-tru fiecare cotaie bursier pe care o furnizeaz.

    Grupul a analizat colecia de cotaii extrase anterior ia descoperit multe duplicate, de unde rezult c au fost iro-sii bani.

    Aadar, noul program va trebui s menin o list a co-taiilor cerute anterior de membrii grupului iar n momen-tul n care sunt necesare alte cotaii, va extrage doar cota-iile din datele pentru care nu exist informaii, minimi-znd astfel costul.

    Sarcina voastr este s scriei un program care determi-n cnd trebuie extrase cotaii noi. Datele de intrare pentruprogram vor consta n intervale de timp pentru care, n tre-cut, au fost cerute cotaii bursiere i intervale de timp pen-tru care sunt necesare noi cotaii. Programul va determinaintervalele de timp pentru care trebuie extrase cotaii folo-sind serviciul cu tax.

    Date de intrareFiierul de intrare intersect.in va conine mai multe se-turi de date.

    Fiecare set de date este descris pe mai multe linii. Pri-ma linie conine dou numere ntregi NX i NR, separatentre ele printr-un singur spaiu, care reprezint numrulde intervale de timp pentru care exist informaii, respec-tiv numrul de intervale de timp pentru care sunt necesareinformaii. Urmtoarele NX + NR linii conin perechi dedate. Prima dat dintr-o pereche este mai mic sau egal cucea de-a doua. Primele NX perechi de date reprezint in-tervalele de timp pentru care exist informaii, iar restul deNR perechi reprezint intervalele de timp pentru care suntnecesare informaii legate de cotaiile bursiere. Cele doudate dintr-o pereche sunt separate ntre ele printr-un sin-gur spaiu.

    Ultimul set de date din fiierul de intrare este urmat deo linie pe care se afl dou valori 0 separate ntre ele prin-tr-un singur spaiu.

    Fiecare dat din fiierul de intrare va avea formatulYYYYMMDD, unde YYYY reprezint anul (care este cu-prins ntre 1700 i 2100), MM reprezint luna (care poateavea valorile 01, 02, ..., 12), iar DD reprezint ziua (carereprezint o zi valid n raport cu anul i luna). Ziua poateavea valoarea minim 01, valoarea maxim 31 pentru lunile01, 03, 05, 07, 08, 10 i 12, valoarea maxim 30 pentru lu-nile 04, 06, 09 i 11, valoarea maxim 28 pentru luna 02,dac anul nu este bisect, i valoarea maxim 29 pentru luna02, dac anul este bisect. Un an este bisect dac este di-vizibil cu 4 i nu este divizibil cu 100 sau dac este divizibilcu 400.

    Date de ieireLa ieirea standard, pentru fiecare set de date din fiierulde intrare se va scrie numrul de ordine al acestuia pe olinie urmat de mai multe linii pe care se vor scrie inter-valele de timp pentru care trebuie extrase informaii sau olinie pe care se va afla textul No additional quotes arerequired, ca n exemplu. Rezultatele furnizate pentru fie-care set de date vor fi separate ntre ele printr-o linie vid.

    Restricii 0 NX, NR 100.

    Exempluintersect.in1 119900101 19901231

  • 19901201 200001310 319720101 1972013119720201 1972022819720301 197203011 120010101 2001123120010515 200109010 0

    Ieire standardCase 1:

    1/1/1991 to 1/31/2000

    Case 2:1/1/1972 to 2/28/19723/1/1972

    Case 3:No additional quotes are required.

    P040406: Alipind hriFotografiile unei zone, luate din avion sau satelit, pentrucare trebuie realizat o hart, au de obicei o rezoluie marepentru a identifica n mod unic caracteristicile majore pecare aceasta la deine. Din moment ce o fotografie acoperdoar o mic poriune a pmntului, realizarea unei hripentru o zon mai mare necesit mai multe fotografii carese suprapun pe poriuni i prin alipirea fotografilor rezulto hart a unei zone mai mari.

    Pentru aceast problem avei la dispoziie cteva hridreptunghiulare, fiecare fiind reprezentat sub forma unuitablou bidimensional de caractere. O celul poate conineo liter majuscul a alfabetului englezesc n cazul n carecorespunde unei zone care conine o caracteristic careidentific n mod unic zona. Litere diferite corespund unorcaracteristici diferite, dar aceeai caracteristic poate iden-tifica mai multe celule (de exemplu, o osea). O celul con-ine caracterul '-' dac n locul respectiv nu exist o carac-teristic important. Alipirea a dou hri const n su-prapunerea lor astfel nct una sau mai multe caracteristiciimportante s fie suprapuse. O celul care conine o ca-racteristic important pe una din hri, poate fi suprapuspeste o celul, de pe alt hart, care nu conine o caracte-ristic important, dar nu pot fi suprapuse dou celule careconin caracteristici importante distincte.

    --A-C C---- C---- ----D -D--C----D D---F ----- -E--B ----G----B B---- B-A-C ----- ----B

    Harta nr.: 1 2 3 4 5

    Dac se consider hrile de mai sus care au trei linii icinci coloane fiecare, se poate observa c cea mai din dreap-ta coloan a primei hri se potrivete perfect cu primacoloan a celei de-a doua hri. Aadar, prima i a doua

    hart pot fi suprapuse i rezult o hart care are trei linii inou coloane. Prima hart se mai poate suprapune i cuharta a treia din moment ce caracteristicile importante B iC de pe ultima coloan a primei hri se potrivesc cu celede pe prima coloan a celei de-a treia hri; caracteristica Dnu se potrivete perfect peste caracterul '-', dar nu existnici un conflict. Similar, prima linie a hrii 1 se poatesuprapune cu ultima linie a hrii 3.

    "Scorul" unei perechi de hri indic suprafaa pe carese potrivesc cele dou hri. Scorul suprafeei suprapuse adou hri reprezint numrul de celule care conin carac-teristici importante, care coincid n suprapunere i care daucea mai bun potrivire. Scorul unei perechi de hri estedat de scorul maxim care se poate obine pentru o supra-punere valid. Aadar, scorul unei perechi de hri care aufiecare trei linii i cinci coloane este un numr ntreg cu-prins ntre 0 i 15.

    Un "deplasament" reprezint o pereche de numerentregi (r, c) care indic modul n care dou hri a i b sepot suprapune. Valoarea r reprezint deplasamentul linii-lor din b relativ la liniile din a, iar valoarea c reprezintdeplasamentul coloanelor din b relativ la coloanele din a.

    De exemplu, suprapunerea hrilor 1 i 2 are deplasa-mentul (0, 4) i scorul 3, iar cele dou suprapuneri posibileale hrilor 1 i 3 cu scorul 2 au deplasamentele (0, 4), res-pectiv (-2, 0).

    Urmtorii pai descriu modul n care se realizeazalipirea unui secvene de hri: se suprapun hrile care au cel mai mare scor pozitiv (se

    rezolv conflictele folosind harta cu cel mai mic numrde ordine);

    se elimin hrile care au fost suprapuse din secven; se adaug rezultatul suprapunerii celor dou hri n

    secven, atribuindu-i-se cel mai mare numr de ordinecare apare n secven i la care se adaug 1.

    n exemplul anterior, hrile 1 i 2 prin suprapunere for-meaz harta cu numrul de ordine 6, iar hrile 1 i 2 sunteliminate din secven. Cei trei pai descrii anterior serepet pn cnd secvena conine o singur hart sau pncnd nu mai pot fi suprapuse hri (scorul oricrei perechide hri din secven este 0).

    Dac dou hri se pot suprapune n mai multe feluricu acelai scor, atunci ele trebuie suprapuse n funcie decel mai mic deplasament pentru linii i apoi n funcie decel mai mic deplasament pentru coloane.

    Date de intrareFiierul de intrare maps.in conine mai multe seturi dedate fiecare avnd ntre dou i zece hri.

    Fiecare set de date const n mai multe linii. Prima liniea unui set de date conine un singur numr ntreg care re-prezint numrul de hri pentru setul de date respectiv.n continuare urmeaz hrile.

    Fiecare hart const n mai multe linii. Prima linie a uneihri conine dou numere ntregi NR i NC, separate ntre

    GIn

    fo n

    r. 1

    4/4

    - a

    pri

    le 2

    004

    14

    pro

    ble

    me

  • pro

    blem

    eG

    Info

    nr. 1

    4/4

    - ap

    rilie 2004

    15

    ele printr-un singur spaiu, care reprezint numrul de li-nii, respectiv numrul de coloane ale hrii respective. Ur-mtoarele NR linii ale descrierii unei hri conin cte olinie a hrii care este dat doar de primele NC caractere depe ea, restul caracterelor suplimentare trebuind ignorate.

    Ultimul set de date este urmat de o linie pe care se vaafla valoarea 0.

    Date de ieireLa ieirea standard, pentru fiecare set de date trebuie afiatnumrul su de ordine (ncepnd cu 1) i hrile obinute,fiecare identificat prin numrul su de ordine i trebuiemrginite de o frontier. Furnizarea rezultatelor trebuie sse fac folosind formatul din exemplu. Nici o hart nutrebuie s aib mai mult de 70 de coloane.

    Restricii 1 NR, NC 10.

    Exemplumaps.in Ieire standard5 Case 13 5 MAP 9:--A-C +-------------+----D |-D--C--------|----B |----G--------|3 5 |----B-A-C----|C---- |----B-A-C----|D---F |-----E--B----|B---- |-------------|3 5 +-------------+C--------- Case 2B-A-C MAP 1:3 5 +-----+----D |----A|-E--B |----B|----- |----C|3 5 +-----+-D--C----G MAP 2:----B +-----+2 |A----|3 5 |B----|----A |D----|----B +-----+----C3 5A----B----D----0

    P040407: NavigareGPS-ul este un sistem de navigare care se bazeaz pe unset de satelii care se afl pe orbite la aproximativ 20.000 de

    km deasupra pmntului. Fiecare satelit descrie o orbitcunoscut i transmite semnale radio care codific timpulcurent. Dac un vehicul echipat cu un dispozitiv GPS areun ceas precis, poate compara timpul su local cu cel codi-ficat de semnalele recepionate de la satelii. Deoarece sem-nalele radio sunt transmise cu o frecven cunoscut, vehi-culul poate determina distana dintre poziia sa i poziiasatelitului n momentul n care a transmis semnalul radio.Msurnd distana sa fa de mai muli satelii de pe orbitecunoscute, un vehicul poate s-i determine poziia cu oprecizie foarte mare.

    Figura 22

    Sarcina voastr este s scriei un program simplu de"pilot-automat" care se bazeaz pe navigare GPS. Pentruca problema s fie mai simpl, vom presupune c totul sedesfoar n plan. Cu alte cuvinte, nu trebuie luat n con-siderare curbura pmntului sau altitudinea sateliilor. Maimult, n problem se folosesc viteze care sunt mai apropia-te celor ale avioanelor i undelor sonore dect cele ale sa-teliilor i undelor radio.

    Dndu-se un set de semnale ale unor surse mobile,programul vostru trebuie s calculeze poziia n care se re-cepioneaz semnalul n plan. Apoi, dndu-se un punct dedestinaie n plan, programul trebuie s determine direciaindicat de o busol i care trebuie urmat pentru a ajungedin punctul determinat pn n punctul destinaie. Toatedireciile busolei sunt n grade. Gradul 0 corespundedireciei nordului, gradul 90 corespunde direciei est, gra-dul 180 corespunde direciei sud i gradul 270 corespundedireciei vest, dup cum se poate observa i n figura 2.

    Date de intrareFiierul de intrare navigation.in conine mai multe se-turi de date.

    Prima linie a fiecrui set de date conine un numr n-treg pozitiv N, care reprezint numrul de surse care emitsemnale, urmat de trei numere reale t, x i y care reprezintmomentul de timp local exprimat n secunde cnd semna-lele au fost primite relativ la momentul de timp 0, iar x iy reprezint coordonatele punctului destinaie. Numerelede pe aceast linie sunt separate ntre ele printr-un spaiu.

    Fiecare dintre urmtoarele N linii conine patru numerereale, separate ntre ele printr-un spaiu, care conin infor-maiile legate de o surs. Primele dou numere reprezintpoziia sursei la momentul de timp 0. Al treilea numr re-

  • GIn

    fo n

    r. 1

    4/4

    - a

    pri

    le 2

    004

    16

    pro

    ble

    me

    prezint direcia de deplasare D a sursei exprimat n gra-de, iar al patrulea numr reprezint timpul codificat de surs.

    Ultimul set de date este urmat de o linie pe care se aflpatru valori 0 separate ntre ele printr-un spaiu.

    Date de ieireLa ieirea standard, pentru fiecare set de date se va afia peo linie numrul de ordine al setului din fiierul de intrarei direcia n grade care trebuie urmat pentru a se ajungela destinaie, cuvntul "Inconclusive", dac direcia nupoate fi determinat, cuvntul "Inconsistent", dac da-tele sunt inconsistente sau cuvntul "Arrived", dacdistana dintre punctul n care se afl vehiculul i punctulde sosire este mai mic sau egal cu 0,1 metri.

    Fiecare linie furnizat la ieirea standard poate aveaforma:Trial #: D degrees Trial #: InconclusiveTrial #: InconsistentsauTrial #: Arrivedunde # reprezint numrul setului de date, iar D reprezintdirecia de deplasare exprimat n grade.

    Restricii i precizri 1 N 10; numerele din fiierul de intrare nu sunt mai mari dect

    10.000 i nici un numr real nu are mai mult de 5 zecimale; toate numerele care reprezint coordonate sunt date n

    metri; sursele care emit semnal se deplaseaz cu 100 de metri pe

    secund, iar semnalele se propag cu 350 de metri pesecund;

    datorit pierderii preciziei n momentul sincronizrii cea-surilor, distanele se pot calcula cu o eroare de 0,1 metri,mai exact, dac distana dintre dou puncte este mai micsau egal cu 0,1 metri se poate considera c acestea suntidentice;

    exist posibilitatea ca un semnal s fie corupt la trans-mitere, ceea ce conduce la faptul c datele mai multorsemnale s fie inconsistente.

    Exemplunavigation.in3 2.53571 1050.0 1050.0-100.0 350.0 90.0 1.75350.0 -100.0 0.0 1.75350.0 800.0 180.0 1.752 2.0 1050.0 1050.0-100.0 350.0 90.0 1.0350.0 -100.0 0.0 1.00 0 0 0

    Ieire standardTrial 1: 45 degreesTrial 2: Inconclusive

    ExplicaieFigura 3 corespunde primului set de date din fiierul deintrare. Poziiile celor 3 satelii la momentul de timp t = 0sunt A(-100, 350), B(350, -150) i C(350, 800). Semnalelerecepionate de dispozitivul GPS au fost transmise lamomentul t = 1,75 cnd sateliii erau n poziiile A', B',respectiv C' (n general, semnalele nu sunt transmise nacelai timp de ctre toi sateliii). Semnalele de la cei treisatelii converg ctre punctul D la momentul de timp t =2,53571 ceea ce nsemn c D reprezint poziia vehiculu-lui. Din punctul D trebuie urmat direcia de 45 de gradeindicat de busol pentru a ajunge n punctul destinaie decoordonate (1050, 1050).

    Figura 33

    P040408: Copacii de pe strziConsiliul local al oraului Greenville a votat recent mbu-ntirea imaginii strzilor din ora. Pentru a oferi mai mul-t verdea peisajului, consiliul a decis s planteze copacide-a lungul celor mai importante strzi i bulevarde. Pen-tru a putea aproxima costul acestei mbuntiri urbane,consiliul dorete s tie ci copaci vor fi plantai. Plantareacopacilor trebuie s respecte urmtoarele restricii: de-a lungul unei strzi copacii trebuie plantai la o dis-

    tan de minim 50 de metri unii de alii pentru a li se oferio cretere i dezvoltare normal i pentru a menine cos-tul acestei mbuntiri ntre nite limite rezonabile;

    din motive de siguran nu trebuie plantai copaci la maipuin 25 de metri de cea mai apropiat intersecie pentruca participanii la trafic s se poat vedea unii pe alii cuuurin cnd se apropie de intersecie. Sigurana traficu-lui nu trebuie s fie compromis de reducerea vizibilitii.

    Toate strzile considerate sunt drepte. Nu exist curbede-a lungul lor.

    Consiliul oraului dorete s cunoasc numrul maximde copaci care pot fi plantai n conformitate cu cele dourestricii.

    Date de intrareFiierul de intrare streets.in conine mai multe hri destrzi.

    Prima linie a unei hri conine un singur numr ntregn care reprezint numrul de strzi ale hrii. Fiecare din-tre urmtoarele n linii descrie o strad ca un segment dedreapt din plan. O linie a fiierului de intrare care descrie

  • pro

    blem

    eG

    Info

    nr. 1

    4/4

    - ap

    rilie 2004

    17

    o strad conine patru numere ntregi x1, y1, x2 i y2, sepa-rate ntre ele printr-un spaiu, cu semnificaia c strada cu-rent merge din punctul de coordonate (x1, y1) pn npunctul de coordonate (x2, y2).

    Ultima descriere a unei hri de strzi este urmat de olinie care conine valoarea 0.

    Date de ieireLa ieirea standard trebuie furnizate, pentru fiecare hart,numrul de ordine al hrii din fiierul de intrare i num-rul maxim de copaci care pot fi plantai astfel nct s fierespectate restriciile din enun.

    Pentru fiecare hart se vor scrie dou linii. Prima linietrebuie s aib formatul:

    Map #unde # reprezint numrul de ordine al hrii din fiierulde intrare, ncepnd cu 1 ca n exemplu, iar cea de-a doualinie trebuie s aib formatul:

    Trees = cunde c reprezint numrul maxim de copaci care pot fiplantai pe strzile care aparin unei hri.

    Restricii i precizri 1 n 100; coordonatele punctelor care descriu capetele unei strzi

    sunt numere ntregi cuprinse ntre 0 i 1.000.000; toate strzile au lungimi pozitive i fiecare capt aparine

    unei singure strzi; pentru fiecare strad distanele dintre dou intersecii ve-

    cine nu sunt multipli exaci de 25 de metri; mai exact, di-ferena dintre o astfel de distan i cel mai apropiat mul-tiplu de 25 va fi cel puin 0.001 metri.

    n fiecare intersecie se ntlnesc exact dou strzi.

    Exemplustreets.in30 40 200 4040 0 40 2000 200 200 040 30 230 300 200 230 20030 0 30 230200 0 200 23030 1 121 10 0 121 40 4 121 00

    Ieire standardMap 1Trees = 13Map 2Trees = 20

    Map 3Trees = 7

    P040409: Suspans!Jan i Tereza locuiesc n cldiri vecine i apartamentele lorsunt fa n fa. Pentru proiectul de la disciplina tiine dela coal ei doresc s construiasc un pod suspendat dincablu, sfoar i carton care s fac legtura ntre cele doucldiri. Dou buci identice ca lungime formeaz cablu-rile principale de suspensie i sunt ataate de marginea dejos a ferestrelor lor. Platforma de carton care reprezintsuprafaa neted a podului este susinut de mai multesfori care sunt legate de cablurile principale de suspensie.Podul orizontal se afl la exact un metru sub cel mai de jospunct al cablurilor de suspensie. Din motive estetice plat-forma podului ar trebui s fie la cel puin doi metri sub ceamai de jos muchie a celei mai de jos ferestre a fiecruiadintre cei doi elevi. Legile fizicii spun c fiecare cablu desuspensie are forma unei parabole.

    Cu toate c Jan i Tereza nu au de gnd s se plimbepe acest prototip de pod, apare o problem serioas: uniilocatari ai celor dou imobile au pisici, iar alii au canari.Cei doi doresc s fie siguri c podul lor nu va putea per-mite unei pisici s ajung la un canar. Cei doi au observatc o pisic nu poate sri pe ceva ce este mai nalt de 0,5 me-tri i nu poate sri de la o nlime mai mare de trei metri.Deci, atta timp ct podul se afl la mai mult de 0,5 metrideasupra marginii de jos a geamului la care se afl o pisicsau la cel puin trei metri sub marginiea de jos a geamuluila care se afl o pisic, atunci aceasta nu va sri. De ase-menea, dac o pisic reuete s sar pe pod, atunci nu vaputea ajunge la geamul unui canar dac podul se afl la maimult de 0,5 metri sub marginea de jos a geamului la care seafl canarul sau la cel puin trei metri deasupra marginii dejos a geamului la care se afl canarul. Pisicile sunt intere-sate doar s ajung la canari i nu s se ntoarc acas.

    Figura de mai jos arat c apartamentul lui Jan, etiche-tat cu J i cel al Terezei, etichetat cu T, sunt legate printr-un cablu care unete punctele cele mai de jos ale ferestrelorlor i podul propriu-zis se afl la un metru dedesubtulcelui mai de jos punct al cablului de suspensie. Pisica de laetajul al doilea poate ajunge la canarul de la etajul al doileadin cldirea vecin folosind podul.

    Figura 44

  • GIn

    fo n

    r. 1

    4/4

    - a

    pri

    le 2

    004

    18

    pro

    ble

    me

    Sarcina voastr este s scriei un program care de-termin de ct sfoar au nevoie cei doi pentru a realizafiecare segment de cablu al podului astfel nct s nu punn pericol nici un canar din cele dou cldiri.

    Programul trebuie s in cont de: distana, exprimat n metri, dintre cele dou imobile; numerele etajelor la care locuiesc cei doi elevi; tipul de animale care se afl la etajele dedesubtul etajului

    la care st Jan; tipul de animale care se afl la etajele dedesubtul etajului

    la care st Tereza.

    Programul trebuie s determine lungimea celui mailung cablu care poate fi folosit la suspendarea podului careleag cele dou cldiri i care nu permite nici unei pisici sajung la un canar prin intermediul podului.

    Podul orizontal trebuie s se afle la cel puin un metrudeasupra solului i la exact un metru sub cel mai de jospunct al cablului de suspensie.

    De asemenea, podul trebuie s se afle la cel puin doimetri sub cea mai de jos fereastr a celor doi.

    Date de intrareFiierul de intrare suspense.in const n mai multe teste.Fiecare test este descris prin trei linii.

    Prima linie pentru un test va conine dou numere n-tregi pozitive j i t i un numr real d, separate prin spaiu,care reprezint etajul la care locuiete Jan, etajul la carelocuiete Tereza, respectiv distana dintre cele dou cldiriexprimat n metri.

    Cea de-a doua linie conine j litere mari ale alfabetuluienglezesc separate printr-un spaiu, iar cea de-a treia liniecorespunztoare unui test conine t litere mari ale alfabe-tului englez separate printr-un singur spaiu. Aceste literereprezint tipul de vieti care triesc n etajele celor doucldiri, care sunt mai mici sau egale cu etajele la carelocuiesc cei doi, i pot avea valorile B (la etajul respectiv seafl un canar), C (la etajul respectiv se afl o pisic) sau N(la etajul respectiv nu se afl nici una dintre cele doutipuri de vieti de mai sus). Vietile din cele dou cldirisunt date pe linia a doua i a treia n ordinea cresctoare aetajelor de la 1 la j, respectiv de la 1 la t.

    Ultimul test din fiierul de intrare este urmat de o sin-gur linie care conine trei valori 0 separate ntre ele prin-tr-un spaiu.

    Date de ieirePentru fiecare test din fiierul de intrare trebuie tipritnumrul acestuia (1, 2, ...) i cea mai mare valoare c cuproprietatea c dou cabluri de lungime c pot fi folositepentru a suspenda podul de capetele inferioare a ferestre-lor celor doi elevi, astfel nct suprafaa orizontal a po-dului s se afle la exact un metru sub cel mai de jos punctal celor dou cabluri, la cel puin un metru deasupra so-lului, la cel puin doi metri sub cele dou ferestre ale elevi-lor i nu permite nici unei pisici s ajung la un canar.

    Valoarea c trebuie rotunjit la trei zecimale exacte.Dac nu poate fi construit un pod care s respecte con-

    diia din enun trebuie afiat cuvntul impossible.Pentru fiecare test din enun se va tipri o linie de

    forma: Case #: csauCase #: impossible

    unde # reprezint numrul testului, iar c reprezint valoa-rea calculat rotunjit la trei zecimale exacte.

    Liniile furnizate la ieirea standard trebuie despriteprintr-o linie vid, ca n exemplu.

    Restricii i precizri 2 j, t 25; 1 d 25; etajele sunt identificate prin numere ntregi, iar cel mai

    de jos etaj este identificat prin 1; toate camerele din cele dou cldiri au exact trei metri

    nlime; toate ferestrele ale celor dou cldiri au exact 1,5 metri

    nlime i captul de jos al fiecrei ferestre se afl la exactun metru deasupra podelei fiecrei camere;

    Exemplususpense.in Ieirea standard4 3 5.0 Case 1: 14.377N C N CN B B Case 2: impossible4 3 5.0C B C CB C B0 0 0

    P040410: Controlul traficului aerianPentru a evita coliziunile din aer, majoritatea zborurilorcomerciale sunt monitorizate de la sol de centre de controla traficului aerian care nregistreaz poziiile avioanelorfolosindu-se de sisteme radar.

    Datele pentru aceast problem constau n dou mul-imi: o mulime de avioane i o mulime de centre de con-trol i trebuie s determinai cum trebuie distribuit moni-torizarea avioanelor ntre centrele de control. Poziia fie-crui avion este descris de o pereche unic (x, y) de coor-donate. Pentru scopul acestei probleme altitudinea la carese afl avioanele poate fi ignorat.

    Numrul de avioane care pot fi monitorizate de ctreun centru de control variaz din cnd n cnd datoritschimbrilor de echipament i a angajailor.

    La orice moment de timp, fiecare centru de controlmonitorizeaz attea avioane cte poate, n funcie deurmtoarele prioriti: se prefer monitorizarea avioanelor care sunt mai apro-

    piate de centrul de control; dac dou avioane sunt egal deprtate de centrul de con-

    trol, i centrul poate s monitorizeze numai unul dintre

  • pro

    blem

    eG

    Info

    nr. 1

    4/4

    - ap

    rilie 2004

    19

    ele, atunci va fi monitorizat cel mai dinspre nord (valoarepozitiv pentru coordonata y);

    dac dou avioane sunt egal deprtate de centrul decontrol i au aceeai valoare pentru coordonata y, atuncieste prioritar cel mai dinspre est (valoare pozitiv pentrucoodonata x).

    n orice moment, fiecare centru de control dispune deo arie circular de control a crei raz este dat de distanadintre el i cel mai ndeprtat avion monitorizat. Toateavioanele cuprinse n aceast arie de control sunt monito-rizate de centrul de control respectiv. Avioanele care seafl chiar pe frontiera unui centru de control pot sau nupot fi monitorizate de acesta, n funcie de prioritile amin-tite mai sus.

    Voi nu vei cunoate poziiile centrelor de control, nschimb, pentru fiecare centru de control vei cunoatenumrul de avioane pe care acesta l monitorizeaz la unmoment dat i coordonatele a dou puncte care se afl pefrontiera ariei de control. Folosind aceste informaii, veiputea calcula poziia centrului de control i putei decidecare avioane sunt monitorizate de acesta.

    Dac datele sunt consistente n raport cu dou sau maimulte arii de control, trebuie aleas aria de control careinclude avionul cel mai nordic, iar dac exist dou avioa-ne avnd aceeai coordonat y, se va alege aria de controlcare monitorizeaz pe cel mai estic dintre avioane.

    Figura de mai jos ilustreaz patru avioane i doucentre de control. Fiecare centru de control este reprezen-tat prin dou puncte de pe frontier, etichetate cu A i B,iar avioanele sunt etichetate cu P1, P2, P3 i P4. n acestexemplu avioanele P1 i P4 sunt monitorizate de un singurcentru de control, avionul P3 este monitorizat de doucentre de control, iar avionul P2 nu este monitorizat denici un centru de control.

    Figura 55

    Date de intrareDatele de intrare ce citesc din fiierul traffic.in i con-stau n mai multe teste. Datele pentru un test constau nmai multe linii.

    Prima linie a unui anumit test conine dou numerentregi NP i NC, separate printr-un singur spaiu, carereprezint numrul de avioane, respectiv numrul centre-lor de control. Fiecare dintre urmtoarele NP linii coninedou numere reale x i y care reprezint coordonatele la

    care se afl un avion. Fiecare dintre urmtoarele NC liniiconine cinci numere separate ntre ele prin spaiu. Primulnumr este ntreg, este cuprins ntre 0 i NP inclusiv ireprezint numrul de avioane monitorizate de un centrude control; urmtoarele dou numere sunt reale i reprezin-t coordonatele primului punct aflat pe frontiera ariei decontrol a centrului respectiv, iar ultimele dou numere suntreale i reprezint coordonatele celui de-al doilea punctaflat pe frontiera ariei de control a centrului.

    Ultimul test este urmat de o linie pe care se afl douvalori 0 separate ntre ele printr-un singur spaiu.

    Date de ieireRezultatele vor fi furnizate la ieirea standard.

    Pentru fiecare test trebuie calculate numrul de avioanecare nu sunt monitorizate de nici un centru de control, nu-mrul de avioane care sunt monitorizate de un centru decontrol i aa mai departe pn la numrul de avioane caresunt monitorizate de NC centre de control. Aceste valorivor trebui scrise pe o singur linie sub forma:

    Trial #: n0 n1 n2 ... nNCunde # reprezint numrul testului, iar n0, n1, n2, ..., nNCreprezint valorile calculate.

    Dac datele pentru un centru de control din cadrul unuianumit test sunt inconsistente, pentru testul respectiv se vascrie la ieirea standard o linie de forma:

    Trial #: Impossibleunde # reprezint numrul testului.

    Liniile furnizate la ieirea standard trebuie despriteprintr-o linie vid, ca n exemplu.

    Restricii i precizri 0 < NP < 100; 0 < NC < 10; dac diferena a dou distane este mai mic dect 0,00001,

    atunci distanele trebuie tratate ca fiind egale.

    Exemplutraffic.in4 23.0 0.00.0 0.01.6 2.82.0 1.02 1.0 2.0 2.0 0.02 2.0 2.0 4.0 2.02 10.0 0.50.0 -0.50 -1.0 0.0 1.0 0.00 0

    Ieirea standardTrial 1: 1 2 1

    Trial 2: Impossible