Pentru a putea rula codul, te rugăm să te autentifici.

Autentifică-te
main.cpp

ID #742 · RAU Coder 2020 · Probleme cu coadă

Problema JocDeSah

Dificilă · 8

Memorie: 64 MB / 8 MB

Timp: 0.1 secunde

I/O: Fișiere

RAU-Gigel se gândește la un joc cu piesele de șah. El desenează o tablă de șah sub forma unei matrici pătratice de latură N și așează în fiecare dintre cele N × N celule câte o piesă de șah. Se consideră că dispune de N × N exemplare din fiecare piesă posibilă (regi, regine, ture, nebuni, cai, pioni), iar culoarea nu este relevantă. RAU-Gigel se întreabă care este numărul minim de căsuțe (celule) prin care trebuie să treacă un rege oarecare ca să ajungă la o regină oarecare. Regele se poate deplasa câte o celulă în patru direcții posibile: N, E, S, V.

Dar asta nu e tot. La începutul jocului, toți regii au 16 vieți. Atunci când RAU-Gigel mută un rege (oarecare) peste primul pion, acesta pierde o viață. Vestea bună este că, după aceea, regele respectiv poate lua oricâți pioni fără ca numărul său de vieți să fie afectat. Când ia un cal, regele pierde două vieți, dar după aceea poate lua, fără pierderi, oricâți cai. La fel se întâmplă și în cazul nebunilor, primul nebun îl costa patru vieți și, respectiv al turelor, care îl costă opt vieți.

RAU-Gigel dorește să afle ce rege să aleagă și pe ce traseu trebuie să meargă acesta către o regină oarecare, astfel încât la sfârșitul jocului să îi rămână cât mai multe vieți, iar traseul să fie cât mai scurt.

Cerință

Se cer:

  1. Care este numărul maxim de vieți cu care rămâne regele ales?
  2. Prin câte căsuțe trece traseul de lungime minimă? Ce rege mută și pe ce traseu? Dacă există mai multe drumuri de lungime minimă, atunci se va determina drumul mai mic alfanumeric (o celulă este mai mică alfanumeric decât altă celulă dacă se află pe un rând cu indice mai mic sau se află pe același rând cu cea de-a doua, dar pe o coloană cu indice mai mic).

Date de intrare

Fișierul de intrare jocdesah.in conține pe prima linie un număr natural A. Pentru toate testele de intrare, numărul A poate avea doar valoarea 1 sau valoarea 2. Pe al doilea rând se găsește numărul natural N, cu semnificația din enunț. Pe următoarele N linii se află câte N litere mari cu următoarea semnificație: P – pion, C – cal, N – nebun, T – tură, Q – regină și K – rege. Caracterele de pe fiecare rând nu au spații între ele.

Date de ieșire

Dacă valoarea lui A este 1, se va rezolva numai punctul a) din cerință. În acest caz, fișierul de ieșire jocdesah.out va conține un singur număr natural ce reprezintă numărul de vieți care îi rămân la sfârșitul jocului regelui ales de RAU-Gigel.

Dacă valoarea lui A este 2, se va rezolva numai punctul b) din cerință. În acest caz, fişierul de ieşire jocdesah.out va conține pe prima linie numărul natural K ce reprezintă numărul de căsuțe prin care trece regele ales (se numără atât căsuța din care pleacă, cât și cea în care ajunge), apoi pe următoarele K rânduri sunt perechi de forma i j (separate cu un singur spațiu) unde i și j reprezintă linia, respectiv coloana celulelor prin care trece regele (în ordinea de deplasare). Indexarea rândurilor și coloanelor se face de la 1 la N.

Restricții și precizări

  • 2 ≤ N ≤ 100
  • În fiecare test există cel puțin o literă K și cel puțin o literă Q
  • Pentru rezolvarea corectă a primei cerințe se acordă 45 de puncte

Exemple

jocdesah.in

2
6
PCQPNP
PCCCCP
QNPKPK
PCKPPP
NKPPPP
NNPPQP

jocdesah.out

5
3 4
3 5
4 5
5 5
6 5

Explicație

Explicația primului exemplu
RAU-Gigel va alege să mute regele de pe poziția 3 4. Drumul va trece prin 5 celule (va număra inclusiv celulele de plecare și sosire), iar acestea sunt: 3 4, 3 5, 4 5, 5 5, 6 5. În drumul său a luat doar pioni, deci a pierdut o singură viață, i-au rămas 15:

* * * * *
* * * *
* * K P
* * * P
* * * P
* * * Q

Se observă că mai există un drum de lungime 5 care îl costă tot o singură viață:

* * * *
* * * *
* * K *
* * P P
* * * P
* * * Q

Drumul este 3 4, 4 4, 4 5, 5 5, 6 5, dar el este mai mic alfanumeric decât 3 4, 3 5, 4 5, 5 5, 6 5 (perechea 3 5 e mai mică alfanumeric decât perechea 4 4).

De asemenea, un alt drum este: 3 4, 3 3, 3 2, 3 1:

* * * *
* * * * *
Q N P K *
* * * *
* * * *
* * * * *

Acesta chiar mai scurt (trece prin numai 4 căsuțe), totuși pe acest drum regele ar ataca un pion și un nebun, care l-ar costa 1 + 4 = 5 vieți și ar rămâne cu numai 11, de aceea nu îl va alege.

jocdesah.in

1
6
PCQPNP
PCCCCP
QNPKPK
PCKPPP
NKPPPP
NNPPQP

jocdesah.out

15

Explicație

Explicația primului exemplu
RAU-Gigel va alege să mute regele de pe poziția 3 4. Drumul va trece prin 5 celule (va număra inclusiv celulele de plecare și sosire), iar acestea sunt: 3 4, 3 5, 4 5, 5 5, 6 5. În drumul său a luat doar pioni, deci a pierdut o singură viață, i-au rămas 15:

* * * * *
* * * *
* * K P
* * * P
* * * P
* * * Q

Se observă că mai există un drum de lungime 5 care îl costă tot o singură viață:

* * * *
* * * *
* * K *
* * P P
* * * P
* * * Q

Drumul este 3 4, 4 4, 4 5, 5 5, 6 5, dar el este mai mic alfanumeric decât 3 4, 3 5, 4 5, 5 5, 6 5 (perechea 3 5 e mai mică alfanumeric decât perechea 4 4).

De asemenea, un alt drum este: 3 4, 3 3, 3 2, 3 1:

* * * *
* * * * *
Q N P K *
* * * *
* * * *
* * * * *

Acesta chiar mai scurt (trece prin numai 4 căsuțe), totuși pe acest drum regele ar ataca un pion și un nebun, care l-ar costa 1 + 4 = 5 vieți și ar rămâne cu numai 11, de aceea nu îl va alege.

ID #742 Autor RAU Coder 2020
Set RAU Coder 2020 Adăugată de Alexis Alexis lexington
Capitol Clasa a X-a/Structuri de date liniare/Probleme cu coadă
Licență

Problema aceasta a fost publicată sub licența CC BY-SA 4.0. Indicațiile sunt publicate sub licența CC BY-SA 4.0, iar rezolvarea sub licența CC BY-SA 4.0. Licența InfoAs Standard License nu permite copierea sau modificarea fără acordul scris al autorilor. Platforma și toate funcționalitățile ei rămân în continuare proprietatea intelectuală Aspire Education Labs SRL. © 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Indicații oficiale de rezolvare a problemei

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

#include <bits/stdc++.h>

    using namespace std;

    int main() {
        int n;
        cin >> n;
        cout << n * n << endl;
        return 0;
    }

Lorem:

Subtitle

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

Lorem:

Pentru a vizualiza indicațiile problemei, te rugăm să te autentifici.

Indicații oficiale de rezolvare a problemei

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

#include <bits/stdc++.h>

    using namespace std;

    int main() {
        int n;
        cin >> n;
        cout << n * n << endl;
        return 0;
    }

Lorem:

Subtitle

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

Lorem:

Pentru a vizualiza rezolvarea problemei, te rugăm să te autentifici.

Soluții trimise la problema JocDeSah

Soluții trimise 2
Soluții de 100 de puncte 2
Soluții de luna aceasta La fel de multe ca luna trecută. 0 +0
Rata de succes Rata dintre numărul de persoane care au obținut 100 de puncte și numărul total de persoane care au încercat problema. 100%

Autentifică-te pentru a vedea soluțiile tale.

Autentifică-te
  • Toate soluțiile tale le găsești aici. Găsești toate detaliile evaluării mai târziu, precum punctaje și sfaturi primite.
  • Poți să editezi soluțiile tale și să le retrimiți. Reia mai târziu de unde ai rămas, pentru că poți modifica soluții și să le reevaluezi.
  • Profesorii pot să vadă soluțiile tale și să îți trimită sugestii. Astfel, îți este mai ușor să înveți informatica, primind sfaturi bune chiar de la școală.

Ultimele soluții trimise 2

1000000 100 100 100000 10000
100000 10 10 1000000 100
10 100000 100 10000000 10000000
10000000 100 10000000 100 1000
1000000 1000000 10000 100 10000
10 1000 1000000 1000 10000000
10 1000 1000 100 100
10 10000000 1000000 10 1000000
10 100 10000 1000 100000
10000000 10000000 1000000 10000 10000000
Tabelul se actualizează în timp real. ?? / ??

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te