Rezolvare PBinfo #3293

Decorative Icon Problema: bifid / 3293

Decorative IconAutor: Darius

Cerința

În criptografia clasică, cifrul bifid este un cifru ce combină pătratul lui Polybius cu cifrul transpoziţiei şi foloseşte fracţionarea.

Pentru început, alfabetul este scris amestecat într-un pătrat al lui Polybius:

     1 2 3 4 5
   1 b g w k z
   2 q p n d s
   3 i o a x e
   4 f c l u m
   5 t h y v r

Mesajul este convertit în coordonatele carteziene obişnuite, scrise unele sub altele:

   a n a a r e m e r e
   3 2 3 3 5 3 4 3 5 3
   3 3 3 3 5 5 5 5 5 5

Sunt apoi citite pe linii:

   3 2 3 3 5 3 4 3 5 3 3 3 3 3 5 5 5 5 5 5

Apoi sunt împărţite în perechi, iar acestea transformate înapoi în litere folosind pătratul:

   32 33 53 43 53 33 33 55 55 55 
   a  n  a  a  r  e  m  e  r  e=> oaylyaarrr

Dându-se numărul c și alfabetul din care lipsește o literă se cere:

  • pentru c=1 se dă un mesaj ce trebuie codificat;
  • pentru c=2 se dă mesajul codificat și trebuie decodificat;
Date de intrare

Fișierul de intrare bifid.in conține pe prima linie numărul c și pe următoarele 5 linii câte 5 litere care alcătuiesc un alfabet din care lipsește o literă. Pe următoarea linie se dă un mesaj alcătuit din litere mici.

Date de ieșire

Fișierul de ieșire bifid.out va conține pe prima linie mesajul codificat, dacă c=1, sau mesajul decodificat, dacă c=2.

Restricții și precizări
  • mesajul și alfabetul conțin numai litere mici ale alfabetului englez
  • 1 ≤ lungimea șirului ≤ 10000
Exemplul 1:

bifid.in

1
bgwkz
qpnds
ioaxe
fclum
thyvr
anaaremere

bifid.out

oaylyaarrr
Exemplul 2:

bifid.in

2
bgwkz
qpnds
ioaxe
fclum
thyvr
oaylyaarrr

bifid.out

anaaremere

Explicație

Tabelul din exemple corespunzător șirului este acesta:
# 1 2 3 4 5 1 b g w k z 2 q p n d s 3 i o a x e 4 f c l u m 5 t h y v r

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