Sunteți pe pagina 1din 1

Olimpiada de Informatică – etapa locală Clasele a VI-a

18 februarie 2023 Sursa: chei.cpp, chei.c, chei.pas

Problema 1 - chei 100 puncte


Gigel a descărcat pe telefon un joc nou. Jocul are mai multe camere. Pentru a trece dintr-o cameră a jocului în
următoarea cameră este nevoie de o cheie potrivită, care va deschide ușa ei.
La începutul jocului se cunosc două chei digitale, ce reprezintă două numere naturale. Cu aceste chei se vor
deschide ușile primelor două camere. Pentru a afla cheia ce deschide ușa unei camere următoare, Gigel utilizează ultimele
două chei din joc, pe care le notează c1 și c2.
Cu aceste chei, va obține un număr nou, notat c, care conține ultima cifră din c1 și prima cifră din c2, în această
ordine. Dacă cheia c1 se termină cu cifra zero, c va fi egal cu prima cifră din c2.
Dacă numărul c este număr prim va reprezenta cheia cu care se va deschide ușa camerei, pentru a trece în altă
cameră a jocului. Dacă numărul c nu este prim, cheia camerei va fi egală cu diferența obținută prin scăderea din numărul c
a factorilor lui primi. Dacă c este egal cu 1, cheia camerei va fi numărul 1. Jocul se termină când ultima cheie obținută
este egală cu una dintre ultimele trei chei utilizate exact înaintea ei.
Cerinţă
Cunoscând primele două chei ale jocului, notate x și y, să se obțină și să se afișeze șirul format din cheile
camerelor din joc, în ordinea utilizării lor, până la terminarea jocului.

Date de intrare
Fișierul de intrare chei.in conține pe prima linie două numere naturale x și y ce reprezintă primele două chei
digitale din joc.

Date de ieșire
Fișierul de ieșire chei.out va conține un șir de numere naturale, separate prin spațiu ce reprezintă cheile
utilizate pentru deschiderea ușilor camerelor, în ordinea obținerii lor, până la terminarea jocului. Primele două numere din
acest șir sunt egale cu primele două chei digitale care se află în fișierul de intrare.
Restricţii şi precizări
● 1 < x, y ≤ 999
● Pentru o cheie digitală c<10, prima și ultima cifră a sa sunt egale cu c
● Jocul lui Gigel are cel puțin 3 camere și cel mult 100 de camere
 Ultima cheie obținută pentru joc, care coincide cu una dintre ultimele trei chei utilizate exact înaintea ei, nu se
afișează . Se acordă 10 puncte din oficiu.
Exemplu
chei.in chei.out Explicație
20 72 20 72 7 24 67 21 Primele două chei din joc sunt 20 și 72. Cu acestea, se obține numărul 7 care
este prim și reprezintă cheia următoare din joc.
Din cheile 72 și 7, se obține numărul 27 care nu este prim și are factor
prim pe 3 . Cheia următoare este egală cu valoarea diferenței 27-3= 24.
Din cheile 7 și 24 se obține numărul 72 care nu este prim și are factorii
primi 2 și 3 . Cheia nouă este egală cu 72-2-3=67.
Din cheile 24 și 67 se obține numărul 46 care nu este prim și are factorii
primi 2 și 23. Cheia nouă este egală cu 46-2-23=21.
Din cheile 67 și 21 se obține numărul 72 care nu este prim și are factorii
primi 2 și 3 . Cheia nouă este egală cu 72-2-3=67. Această cheie coincide
cu una dintre ultimele trei chei utilizate în joc: 24,67 și 21. Jocul se termină și
această ultimă cheie nu se afișează.
20 17 20 17 1 71 Primele două chei din joc sunt 20 și 17. Cu acestea, se obține numărul 1 care
este cheia următoare din joc.
Din cheile 17 și 1 se obține numărul 71 care este prim și reprezintă cheia
următoare.
Din cheile 1 și 71 se obține numărul 17 care este prim și a fost utilizat deja,
jocul se termină și această ultimă cheie nu se afișează.
Timp maxim de execuţie/test: 1 secundă. Memorie totală disponibilă 8 MB din care 4 MB pentru stivă
Dimensiunea maximă a sursei: 20KB

S-ar putea să vă placă și