Lista de probleme 2

La atelierul de făcut potcoave lucrează N muncitori, numerotaţi pentru simplitate de la 1 la N. Fiecare muncitor a încheiat la angajare un contract în care este specificat numărul de potcoave pe care trebuie să le producă muncitorul în fiecare zi de muncă, respectiv a câta zi muncitorul este liber. Mai exact, muncitorul i (1 ≤ i ≤ N) trebuie să producă în fiecare zi de muncă pi potcoave, iar fiecare a ki-a zi va fi liberă (adică muncitorul i va fi liber în ziua ki, 2ki, 3ki, …). În ziua liberă el nu va veni la atelier, deci nu produce potcoave. Atelierul tocmai a primit o comandă de M potcoave. Scrieţi un program care să determine numărul minim de zile după care comanda poate fi integral livrată.

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. 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.