Încercați-vă puterile! PROBLEME propuse pentru REZOLVAREBalcaniada de Informatică a fost organizată anul acesta în orașul Ioannina, în Grecia. Vă propunem să încercați să rezolvați problemele cu care s-au confruntat concurenții la această competiție.
P089901: Drumuri pavateÎntr-o zonă izolată a unei țări sărace există N orașe legate prin drumuri. Între oricare două orașe există drum de legătură, nu neapărat directă. Toate aceste drumuri sunt nepavate. Guvernul dorește sa paveze unele drumuri, astfel încât sa fie îndeplinite condițiile: l există drum pavat minimal între oricare două orașe, și l în cazul în care s-ar elimina oricare dintre drumurile pavate, s-ar pierde legătura pe drum pavat dintre unele orașe. În scopul de a stabili cel mai convenabil mod de pavare guvernul dorește să afle numărul tuturor posibilităților de pavare.
Date de intrare Scrieți un program care citește datele de intrare din fișierul INPUT.TXT, după cum urmează: Prima linie conține două numere întregi pozitive, separate printr-un singur spațiu. Primul număr reprezintă numărul de orașe N (2 Ł N Ł 20), al doilea reprezintă numărul de drumuri directe R (N-1 Ł R Ł 190). Următoarele R linii precizează legăturile directe dintre orașe sub forma unor perechi de numere întregi K și L, separate prin spațiu, reprezentând faptul că orașul K este legat de orașul L (0 Ł K, L Ł N-1) printr-un drum direct.
Date de ieșire Rezultatul se va scrie în fișierul OUTPUT.TXT pe prima linie sub forma unui număr întreg, reprezentând numărul diferitelor posibilități de pavare.
Exemplu INPUT.TXT OUTPUT.TXT 4 4 3 0 2 0 1 0 3 1 3
P089902: Jocul FlipJocul "flip" se joacă de o singură persoană care are la dispoziție o tablă având M linii și 9 coloane pe care există plăcuțe colorate pe o parte cu alb și pe cealaltă cu negru. Când o plăcuță albă se întoarce, ea devine neagră, și invers. La fiecare mutare jucătorul întoarce o întreagă linie sau coloană, schimbând culoarea plăcuțelor în mod corespunzător. Scopul jocului este de a lăsa pe tablă un număr minim de plăcuțe negre printr-un număr oarecare de mutări.
Date de intrare Datele de intrare se citesc din fișierul text INPUT.TXT. Prima linie conține un număr întreg pozitiv M (1ŁMŁ1000), reprezentând numărul de linii ale tablei. Următoarele M linii consecutive conțin exact 9 caractere de "0" sau "1", separate printr-un singur spațiu, unde "0" corespunde feței albe, iar "1" corespunde feței negre.
Date de ieșire Fișierul OUTPUT.TXT va conține un singur număr întreg, reprezentând numărul minim de plăcuțe care vor rămâne negre pe tablă, conform unei strategii de joc optime.
Exemplu INPUT.TXT OUTPUT.TXT 4 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
P089903: De pază în galeria de arteGaleria 'El Greco' constă dintr-o singură încăpere ale cărei pereți pot avea două orientări: din Nord spre Sud sau din Vest spre Est. Perimetrul podelei formează o singură linie poligonală, închisă. În interiorul încăperii nu există nici un fel de obiecte, în schimb, pe fiecare perete există picturi valoroase și proprietarul galeriei dorește să plaseze un gardian în încăpere pentru a le păzi. În consecința proprietarul dorește să afle, dacă există un punct din încăpere, de unde se pot vedea toți pereții în întregime. Un perete se consideră vizibil chiar dacă gardianul este așezat de-a lungul liniei peretelui.
Date de intrare Datele de intrare se vor citi din fișierul INPUT.TXT, după cum urmează: Pe prima linie se află un număr N (4ŁNŁ1000) reprezentând numărul colțurilor încăperii. Pe următoarele N linii sunt scrise perechi de numere întregi separate printr-un spațiu, X și Y reprezentând coordonatele colțurilor în sensul acelor de ceasornic (0ŁX, YŁ1000).
Date de ieșire Rezultatul se va scrie în fișierul OUTPUT.TXT. Pe singura linie a fișierului se vor scrie coordonatele unui punct din încăpere de unde gardianul poate vedea toți pereții; coordonatele vor fi separate printr-un singur spațiu. În cazul în care există mai multe soluții, în fișier se va scrie una singură. În cazul în care nu există nici un asemenea punct, în fișier se va scrie: "NO POINT".
Exemplu INPUT.TXT OUTPUT.TXT 6 70 10 0 0 0 50 50 50 50 100 100 100 100 0
P089904: Statistici la PolițieUn ofițer de poliție este însărcinat să realizeze o statistică cu privire la criminalitatea dintr-o metropolă. Ofițerul trebuie să determine numărul crimelor care au avut loc într-o zonă convexă din oraș.
Date de intrare Formatul fișierului de intrare INPUT.TXT este următorul: l pe prima linie se află scris numărul întreg N (3ŁNŁ1000) reprezentând numărul de colțuri ale zonei convexe analizate; l pe următoarele N linii sunt scrise câte două numere întregi, aparținând intervalului [-1000, 1000] separate printr-un singur spațiu, reprezentând coordonatele colțurilor în ordinea în care se succed pe marginea zonei definite; l următoarea linie conține un număr întreg M (1ŁMŁ 10000) reprezentând numărul crimelor comise în metropolă; l fiecare din următoarele M linii conține câte două numere întregi X și Y (aparținând intervalului [-1000, 1000] separate printr-un spațiu. Aceste numere reprezintă coordonatele locului în care s-a produs o crimă.
Date de ieșire Rezultatul se va scrie în fișierul OUTPUT.TXT și constă dintr-un singur număr întreg. Acesta reprezintă numărul crimelor comise în interiorul sau pe frontiera zonei analizate.
Exemplu INPUT.TXT OUTPUT.TXT 4 1 0 0 0 100 100 100 100 0 2 50 50 -30 50
P089905: Râul HighwaterDouă orașe, Westmouth și Eastmouth, sunt situate pe malul vestic, respectiv malul estic al râului Highwater. Westmouth se află la sud de Eastmouth. Malurile râului sunt linii poligonale astfel încât o linie orientată de la est la vest intersectează fiecare mal în exact un punct. Căpitanul Hook navighează des între cele două orașele. Din dorința de a minimiza cheltuielile pentru combustibil, el ar vrea să afle cea mai scurtă rută de la Westmouth la Eastmouth.
Date de intrare Fișierul de intrare INPUT.TXT conține pe prima linie două numere întregi M și N (2ŁM, NŁ2000) reprezentând numărul colțurilor de pe malul vestic, respectiv estic. Pe următoarele M linii se află câte două numere întregi X și Y (0ŁX, YŁ3600). Aceste numere reprezintă coordonatele colțurilor de pe malul vestic începând de la Westmouth la un punct care se află pe aceeași latitudine (adică având aceeași coordonată Y) cu Eastmouth. Următoarele N linii conțin câte două numere întregi X și Y (0ŁX, YŁ3600) care reprezintă coordonatele colțurilor de pe malul estic începând cu un punct aflat la aceeași latitudine geografică (adică având aceeași coordonată Y) ca Westmouth, către Eastmouth.
Date de ieșire Fișierul de ieșire OUTPUT.TXT conține linii în care sunt scrise câte două numere întregi X și Y, separate printr-un spațiu, reprezentând coordonatele colțurilor rutei între Westmouth și Eastmouth. (Este evident că prima linie trebuie să conțină coordonatele orășelului Westmouth, iar ultima linie conține coordonatele orășelului Eastmouth.)
Exemplu INPUT.TXT OUTPUT.TXT 3 3 0 0 0 0 50 50 50 50 50 100 0 150 100 150 100 0 50 100 100 150
P089906: CunoștințeLa o petrecere participă persoane care pot să îi cunoască pe toți ceilalți, pe unii dintre ei sau pe nici unul. Dorim să aflăm dacă există o modalitate de a așeza toate persoanele într-o coadă, astfel încât pentru orice persoană aflată în coadă, în spatele său se află cunoștințe și alte persoane. Cunoștințele unei persoane, aflate în spatele acestuia trebuie să se cunoască între ei.
Date de intrare Fișierul de intrare INPUT.TXT are următoarea structură: l prima linie conține numărul N (1ŁNŁ50) de persoane participante la petrecere; l cea de a doua linie conține numărul M de perechi de persoane care se cunosc reciproc (0ŁMŁ1225); l fiecare dintre următoarele M linii conține două numere întregi I și J (1ŁI, JŁN) separate printr-un singur spațiu, indicând faptul că persoanele I și J se cunosc reciproc.
Date de ieșire În fișierul de ieșire OUTPUT.TXT pe prima linie se va scrie "YES" în cazul în care există o modalitate de plasare a persoanelor într-o coadă, conform cerințelor problemei; în caz contrar în fișier se va scrie "NO". Dacă răspunsul este "YES", următoarea linie din fișier va conține o ordine convenabilă a celor N persoane (de la prima persoană la ultima). Aceste numere vor fi separate printr-un spațiu.
Exemplu INPUT.TXT OUTPUT.TXT 5 YES 7 1 2 4 5 3 1 2 3 1 2 3 2 4 4 3 3 5 4 5 [cuprins] |