Time limit: 0.05s
Memory limit: 2MB
Input: mesaj.in
Output: mesaj.out
Maria şi Ionuţ doresc să comunice între ei prin bileţele. Pentru ca mesajele lor să nu fie înţelese şi de ceilalţi colegi, ei se hotărăsc să le codifice. Pentru a codifica un mesaj, Maria şi Ionuţ procedează astfel:
- aleg împreună un cuvânt numit cheie format din litere diferite două câte două
- împart mesajul pe care doresc să-l transmită între ei în secvenţe de caractere alăturate de lungime , cu excepţia ultimei secvenţe care poate avea mai puţin de caractere
- scriu pe foaie cuvântul cheie ales
- sub cuvântul cheie ales se scriu secvenţele de lungime determinate anterior, în ordinea obţinerii lor
- mesajul codificat se obţine astfel:
- se parcurge tabelul obţinut anterior, pe coloane, de sus în jos
- ordinea de parcurgere a coloanelor este ordinea alfabetică a literelor din cuvântul cheie
Cerinţă
Scrieţi un program care să determine litera din mesajul codificat care apare de cele mai puţine ori, iar dacă sunt mai multe astfel de litere, prima dintre acestea în ordine alfabetică şi să realizeze decodificarea unui mesaj codificat în modul prezentat anterior.
Date de intrare
Fişierul de intrare mesaj.in
conţine:
- pe prima linie numărul de caractere din cheie
- pe a doua linie cuvântul cheie ales de Maria şi Ionuţ
- pe a treia linie numărul de caractere din mesajul codificat
- pe a patra linie mesajul codificat
Date de ieşire
Fişierul de ieşire mesaj.out
va conţine:
- pe prima linie litera din mesajul codificat care apare de cele mai puţine ori în mesajul codificat; dacă sunt mai multe astfel de litere, prima dintre acestea în ordine alfabetică
- pe a doua linie mesajul decodificat
Restricţii şi precizări
- Cuvântul cheie conţine numai litere mari ale alfabetului englez (
A
,B
,C
, ...,Z
) şi are maxim de litere - Mesajul codificat conţine litere mari ale alfabetului englez, cuvintele sunt separate prin unul sau mai multe spaţii
- Se acordă punctaje parţiale:
- pentru afişarea valorii corecte pe prima linie a fişierului
mesaj.out
(cerinţa ) - pentru afişarea corectă a mesajului pe linia a doua a fişierului
mesaj.out
(cerinţa )
- pentru afişarea valorii corecte pe prima linie a fişierului
Exemplu
mesaj.in
8
COMPUTER
44
SAAO T PTDMCOAANCU DNIICL LFALIIEASMA REINAO
mesaj.out
F
SUCCES LA OLIMPIADA NATIONALA DE INFORMATICA
Explicaţie
Maria şi Ionuţ aleg cuvântul cheie
Mesajul pe care doresc să-l codifice este
Tabelul obţinut este următorul:
Litera cerută este F
şi mesajul codificat este