Lista de probleme 972

Filtrare

Construcția unei noi clădiri a fost finalizată! Frank, celebrul arhitect a făcut o poză cu fațada. Nu este chiar mulțumit de poză deoarece a observat o înclinație a pozei relativ la orizontală. Asta se poate repara printr-o rotație, iar Frank se întreabă dacă procesul de îndreptare nu ar putea fi automatizat. Cu acest scop, imaginea este transformată într-o mulțime de segmente din plan, detectate automat cu algoritmi speciali, ca în imaginea din dreapta. Segmentele care se obțin sunt identificate prin cele două extremități, puncte având coordonate numere naturale, în sistemul xOy: (x1, y1), (x2, y2). Un segment este numit aliniat cu axele dacă este orizontal paralel cu axa Ox, deci y1 = y2) sau vertical (paralel cu axa Oy, deci x1 = x2). Prin rotația imaginii în ansamblu, o parte dintre segmente devin aliniate cu cele două axe. Scrieți un program care pentru o mulțime de segmente determină numărul maxim de segmente care se pot alinia prin rotirea cu un același unghi a tuturor segmentelor. Unghiul de rotație poate fi orice număr real.

OJI 2023, clasa a X-a

#4390 bingo

Fie S un șir de caractere de lungime N indexat de la 1. Pe un astfel de șir se definește operația swap: se alege un indice i (1 ≤ i < N) și se interschimbă caracterele S[i] și S[i + 1]. Numărul norocos corespunzător unui șir S este egal cu numărul minim de operații swap ce trebuie efectuate succesiv pentru a obține cel puțin o subsecvență bingo în șirul S. Dacă subsecvența bingo apare în șirul inițial, numărul norocos este egal cu 0. Se dă un număr natural T și T șiruri de caractere. Să se determine pentru fiecare șir dat S[i] (1 ≤ i ≤ T), numărul său norocos.

#4379 moara

Cunoscându-se N și M, dimensiunile satului, C numărul cailor, forțele inițiale ale cailor și matricile a și p, să se determine numărul de cai pe care Lică îi poate utiliza astfel încât el să reușească să traverseze satul, de la casa lui până la ieșirea din sat.

Dându-se un șir A de N numere naturale nenule numerotate de la 1 la N, să se determine câte subsecvențe [L,R] cu 1 < L ≤ R < N există, astfel încât elementele A[L], A[L+1],…, A[R] să fie strict mai mari decât elementele A[L-1] și A[R+1]. De asemenea, se cere și determinarea lungimii maxime a unei astfel de secvențe. Scrieți un program care să rezolve următoarele două cerințe:
1) Să se determine lungimea maximă a unei subsecvențe ce respectă proprietatea din enunț;
2) Să se determine numărul de subsecvențe ce respectă proprietatea din enunț.

CNER_CODE 2023

#4371 foc

Satul Binăreni se află în pericol în urma incendiilor provocate în ultima lună. Acesta este reprezentat printr-o matrice binară cu N linii și M coloane. Toate celulele care au luat foc sunt reprezentate prin valoarea 0. Toate celulele în care nu este produs un incendiu, reprezentate prin valori de 1, conțin, inițial, câte o casă a unui sătean. Gosu, cel mai renumit pompier din sat, își dorește să salveze toate casele care nu se află în celule "safe", folosindu-și superputerea: acesta poate stinge o singură dată focul din toate celulele care au luat foc pe o linie x și toate celulele care au luat foc pe o coloană y, plasându-se la intersecția acestora, în celula (x, y). Acesta se poate plasa atât pe o celulă cu incendiu, cât și pe o celulă care conține o casă. Având în vedere că Gosu își poate folosi superputerea o singură dată, aflați toate perechile de coordonate (x, y) posibile pe care se poate plasa acesta, astfel încât să salveze toate casele care sunt în pericol.

Fie un șir de caractere S format din litere mici ale alfabetului englez, indexat de la 1. Trebuie să răspundeți la Q query-uri de forma x, y – calculați câte inversiuni se află în intervalul [x, y]. O inversiune este o pereche de indici (i, j), 1 ≤ i < j ≤ N, pentru care este adevărată relația Si > Sj.

Info-Oltenia 2023, echipe 11-12

Să considerăm un calculator cuantic cu N qubiți setați inițial la |q1⟩|q2⟩..|qN⟩. Asupra acestor qubiți se poate efectua un singur tip de operații: se inversează toți qubiții (|0⟩ devine |1⟩ și viceversa) dintr-o subsecvență (qubiți aflați pe poziții consecutive). Aflați numărul minim de operații necesare pentru a seta toți qubiții la |1⟩ în situațiile:
1. Operațiile se pot efectua asupra subsecvențelor de orice lungime
2. Operațiile se pot efectua doar asupra subsecvențelor de lungime K

Fie un șir de caractere S format din litere mici ale alfabetului englez, indexat de la 0. Aflați pentru fiecare i ≥ 2 cel mai mare l pentru care există 0 < j < i − l + 1 unde stringurile \( [{s}_{0}{s}_{1}…{s}_{l-1}] \), \( [{s}_{j}{s}_{j+1}…{s}_{j+l-1}] \) și \( [{s}_{i-l+1}{s}_{i-l+2}…{s}_{i}] \) sunt egale. Dacă nu există un astfel de l, afișați valoarea 0.

Info-Oltenia 2023, echipe 9-10

Gigel trebuie să verifice dacă fratele mai mic are tema rezolvată corect. Dorința lui este să scape cât mai repede de această sarcină obositoare, de aceea vă roagă să îl ajutați să calculeze adunările (+) și scăderile (-) pe care fratele lui le are ca temă. Din fericire pentru Gigel, fratele lui știe doar operații cu numere întregi. Scrieţi un program care să determine:
1. care este rezultatul unei expresii matematice e date.
2. valoarea maximă pe care o poate avea expresia e dacă putem schimba exact un singur operator din expresie.

Olimpiada Municipală de Informatică, Iași, 2023

#4346 autoruz

Ruz deține un parc de autoturisme. În parcul său toate mașinile sunt stocate într-o bază de date din propriul calculator și sunt identificate după trei elemente m, nr și p, unde m reprezintă marca autoturismului, nr reprezintă numărul de înmatriculare al autoturimului, iar p reprezintă prețul de vânzare. El dorește să dezvolte o aplicație pentru a afla în orice moment care este numărul de mașini înmatriculate în județul Iași, marca mașinii care are prețul maxim, respectiv care este valoarea parcului de autoturisme. Scrieţi un program care să determine:
1) numărul de mașini din județul Iași, având codul IS.
2) marca mașinii cu prețul maxim.
3) valoarea parcului de autoturisme.

Olimpiada Municipală de Informatică, Iași, 2023