#4814
Áles se află într-un castel, reprezentat printr-o matrice A
cu N
linii și N
coloane, fiecare element corespunzând unei camere. Fiecare cameră are asociat câte un număr natural de la 1
la K
, care este memorat în elementul corespunzător din matrice. Oricare două camere cu același număr asociat sunt conectate printr-un tunel. De asemenea, fiecare cameră este conectată printr-o ușă cu o cameră vecină, elementele corespunzătoare acestora fiind în matrice pe acceași linie și pe coloane alăturate sau pe aceeași coloană și pe linii alăturate. Scopul lui Áles este să viziteze toate camerele, fiecare cel puțin o dată, astfel încât numerele asociate lor, în ordinea vizitării acestora, să formeze un şir crescător, începând de la 1
.
Áles alege la început o cameră care are asociat numărul 1
. Din fiecare cameră ce corespunde unui element \(A_{i,j}\) el poate vizita:
Ați înțeles, Áles doreşte să folosească teleportorul de cât mai puţine ori! El calculează mai întâi numărul minim necesar de teleportări pentru configurația inițială a camerelor, apoi face, pe rând, Q
transformări succesive ale configurației, prin schimbarea numărului asociat pentru câte o cameră; după fiecare astfel de transformare, calculează din nou numărul minim necesar de teleportări pentru configurația respectivă.
Pentru configurația inițială, precum și după fiecare dintre cele Q transformări ale acesteia, în ordinea în care sunt realizate, determinați numărul minim de teleportări necesare pentru ca Áles să își îndeplinească scopul.
OJI 2025, clasa a 9-a
Problema | teleportor | Operații I/O |
![]() teleportor.in /teleportor.out
|
---|---|---|---|
Limita timp | 0.6 secunde | Limita memorie |
Total: 128 MB
/
Stivă 32 MB
|
Id soluție | #58274623 | Utilizator | |
Fișier | teleportor.cpp | Dimensiune | 1.43 KB |
Data încărcării | 23 Mai 2025, 16:10 | Scor / rezultat | Eroare de compilare |
teleportor.cpp:1:3: error: invalid preprocessing directive #Date # Date inițiale ^ teleportor.cpp:5:3: error: invalid preprocessing directive #Calcul # Calculăm doorExists pentru fiecare x ^ teleportor.cpp:6:29: error: stray '#' in program doorExists = [False]*(K+1) # doorExists[x] = True dacă există ușă între x și x+1 ^ teleportor.cpp:6:1: error: stray '\304' in program doorExists = [False]*(K+1) # doorExists[x] = True dacă există ușă între x și x+1 ^ teleportor.cpp:6:1: error: stray '\203' in program teleportor.cpp:6:1: error: stray '\304' in program teleportor.cpp:6:1: error: stray '\203' in program teleportor.cpp:6:1: error: stray '\310' in program teleportor.cpp:6:1: error: stray '\231' in program teleportor.cpp:6:1: error: stray '\304' in program teleportor.cpp:6:1: error: stray '\203' in program teleportor.cpp:6:1: error: stray '\303' in program teleportor.cpp:6:1: error: stray '\256' in program teleportor.cpp:6:1: error: stray '\310' in program teleportor.cpp:6:1: error: stray '\231' in program teleportor.cpp:17:11: error: invalid preprocessing directive #Dac # Dacă valorile sunt consecutive x și x+1 ^ teleportor.cpp:22:3: error: invalid preprocessing directive #Ini # Inițial ^ teleportor.cpp:27:3: error: invalid preprocessing directive #Calcul # Calcul minim teleportari initial ^ teleportor.cpp:39:7: error: invalid preprocessing directive #Reset # Resetăm doorExists pentru valorile afectate ^ teleportor.cpp:44:7: error: invalid preprocessing directive #Recalculam # Recalculam doorExists pentru vecini ^ teleportor.cpp:2:1: error: 'N' does not name a type N, K = map(int, input().split()) ^ teleportor.cpp:34:13: error: 'j' does not name a type i -= 1; j -= 1 ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema teleportor face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.