Rezolvare PBinfo #4583

Decorative Icon Problema: criptare2 / 4583

Decorative IconAutor: Darius

Ana și Bogdan sunt pasionați de criptarea mesajelor. Ei au studiat mai multe metode de criptare. Ultimul algoritm pe care l-au studiat presupune să scrie un cuvânt cu litere mari ale alfabetului englez. Apoi, sub acest cuvânt să scrie toate permutările sale circulare cu o poziție spre stânga obținând astfel o matrice de caractere. Ordonează lexicografic liniile matricii, memorează ultima coloană și adaugă la finalul șirului astfel obținut numărul liniei pe care a ajuns cuvântul inițial, șirul rezultat fiind denumit cript-ul șirului inițial. Analizând matricea de caractere obținută ei au observat că în matrice se obțin submatrici cu proprietatea că în cele patru colțuri ale lor se află același caracter.

Cerința

Să se scrie un program care citește un număr natural c, reprezentând cerința care trebuie să fie rezolvată, apoi citește un cuvânt. Programul rezolvă următoarele cerințe:
1. Dacă c = 1, șirul citit este un cuvânt necriptat, programul va determina și va afișa cript-ul obținut conform algoritmului descris anterior.
2. Dacă c = 2, șirul citit este un cript, programul va determina și va afișa cuvântul necriptat.
3. Dacă c = 3, șirul citit este un cuvânt necriptat, programul va determina matricea de caractere obținută conform algoritmului descris anterior și va afișa numărul maxim de elemente dintr-o submatrice cu proprietatea că în colțurile sale se află același caracter.

Date de intrare

Pe prima linie a fişierului de intrare criptare.in este scrisă cerința (1, 2 sau 3). Pe linia a doua a fișierului este scris un cuvânt. Dacă cerința este 1 sau 3 cuvântul este necriptat, dacă cerința este 2 cuvântul este un cript.

Date de ieșire

Dacă cerința este 1, pe prima linie a fișierului de ieșire criptare.out va fi scris criptul cuvântului citit. Dacă cerința este 2 pe prima linie va fi scris cuvântul necriptat. Dacă cerința este 3 pe prima linie va fi scris un număr natural reprezentând numărul maxim de elemente dintr-o submatice care are în colțurile sale același caracter.

Restricții și precizări
  • 3 ≤ lungimea cuvântului aflat pe prima linie a fișierului ≤ 100
  • În matricea de cuvinte liniile şi coloanele se numerotează de la 0.
  • Dacă șirul inițial apare pe mai multe linii ale matricei, se va considera că prima apariție reprezintă șirul inițial.
Exemplul 1:

criptare.in

1
ANA

criptare.out

NAA1

Explicație

Permutare circulară Ordonare -> NAA1
ANA AAN
NAA ANA
AAN NAA

Exemplul 2:

criptare.in

1
ANA

criptare.out

NAA1
Exemplul 3:

criptare.in

3
MERE

criptare.out

6

Explicație

Permutare circulară Ordonare
MERE EMER
EREM EREM
REME MERE
EMER REME

Decorative Icon Explică rezolvarea folosind Inteligența Artificială

Folosește modelul nostru de AI special antrenament pentru a rezolva problemele de pe PBinfo! În baza creditelor AI primești explicații pentru probleme, pe care le alegi și le rulezi exact atunci când dorești, la un singur click distanță! Află mai multe informații:

👉 Achiziționează credite AI
Andrei Frîntu
Andrei Frîntu

Fondatorul platformei - mentor Academia

LinkedIn Instagram GitHub
© Copyright 2026 - CodulLuiAndrei.ro - Toate drepturile sunt rezervate