Olympiade départementale d'informatique | cate3cifre

This was the problem page during the contest. Access the current page here.
Time limit: 0.5s Memory limit: 20MB Input: cate3cifre.in Output: cate3cifre.outPoints by default: 10p

Gigel, pasionat de numere, știe că orice număr natural se scrie într-o bază de numerație bb ca o succesiune de simboluri care au asociate valori de la 00 la b1b - 1. De exemplu numărul 77, scris în baza 1010, se scrie în baza 22 ca 111 (2)111 \ (2), iar numărul 2673226732, scris în baza 1010, se scrie în baza 3737 ca o succesiune de 33 simboluri, primele două având asociată valoarea 1919, iar ultimul având asociată valoarea 1818. El a descoperit că există numere care au proprietatea că se scriu, în exact două baze diferite, prin exact trei simboluri identice. De exemplu, numărul 931 (10)931 \ (10) se scrie în baza 1111 ca 777 (11)777 \ (11), iar în baza 3030 se scrie 111 (30)111 \ (30).

Cerință

Fiind dat un număr natural NN, să se determine cel mai mare număr natural mai mic sau egal cu NN, care are proprietatea că se scrie în exact două baze diferite prin exact 33 simboluri identice.

  1. Să se scrie numărul determinat
  2. Să se scrie cele două baze determinate și valorile simbolurilor respective.

Date de intrare

Fişierul de intrare cate3cifre.in conţine pe prima linie cerința (11 sau 22). Pe linia a doua a fișierului de intrare se află numărul natural NN.

Date de ieșire

Fişierul de ieşire cate3cifre.out va conține pe prima linie, dacă cerința este 11, numărul determinat. Dacă cerința este 22, prima și cea de a doua linie a fișierului de ieșire au aceeași structură: pe fiecare linie se vor scrie, separate printr-un spațiu, două numere naturale b cb \ c, reprezentând baza și valoarea simbolului cerut din baza respectivă. Cele două baze se vor afișa în ordine crescătoare.

Restricții și precizări

  • 0<N1 000 0000 < N \leq 1 \ 000 \ 000;
  • Pentru rezolvarea corectă a cerinței 11 se acordă 6060 de puncte. Pentru cerința 22, se acordă 3030 de puncte.
  • Pentru 5050 de puncte N10 000N \leq 10 \ 000;
  • Se dau 1010 puncte din oficiu (teste corespunzatoare acestor puncte vor coincide cu primul exemplu)
  • Numărul xyz (b)xyz \ (b) scris în baza bb cu simbolurile x,y,zx, y, z se scrie în baza 1010 ca o valoare calculată astfel: xb2+yb+zx \cdot b^2 + y \cdot b + z (unde simbolurile x,y,zx, y, z se înlocuiesc cu valorile asociate)
  • Pentru fiecare test există soluție.

Exemplul 1

cate3cifre.in

1
1000

cate3cifre.out

931

Explicație

Numărul determinat este 931931

Numărul determinat se scrie în baza 1111 ca 777 (11)777 \ (11)

Același număr se scrie în baza 3030 ca 111 (30)111 \ (30)

Exemplul 2

cate3cifre.in

2
1000

cate3cifre.out

11 7
30 1

Exemplul 3

cate3cifre.in

1
30000

cate3cifre.out

26733

Explicație

Numărul determinat este 2673326733
Numărul determinat se scrie în baza 3737 ca (19)(19)(19) (37)(19)(19)(19) \ (37) Același număr se scrie în baza 163163 ca 111 (163)111 \ (163);

Exemplul 4

cate3cifre.in

2
30000

cate3cifre.out

37 19
163 1

Log in or sign up to be able to send submissions!