circular

Time limit: 0.4s Memory limit: 4MB Input: circular.in Output: circular.out

Unele numere naturale sunt formate doar din cifre distincte nenule. Dintre acestea, unele, numite numere circulare, au următoarea proprietate: pornind de la prima cifră şi numărând spre dreapta, după cifră, atâtea cifre cât indică aceasta, se determină o nouă cifră. Procedând la fel şi pentru aceasta şi pentru toate cele care urmează se va ajunge din nou la prima cifră. Dacă toate cifrele au fost vizitate exact o dată, numărul se numeşte circular.

De exemplu numărul 1 894 2561 \ 894 \ 256 este număr circular deoarece:

  • are numai cifre distincte
  • nu conţine cifra 00
  • pornind de la 11 obţinem, pe rând: 8,9,2,6,5,4,18, 9, 2, 6, 5, 4, 1

Cerință

Scrieţi un program care,pentru un NN dat, determină câte numere circulare sunt mai mici sau egale cu NN, precum şi cel mai mare număr circular mai mic sau egal cu NN.

Date de intrare

Pe prima linie a fişierului de intrare circular.in se află numărul natural NN.

Date de ieșire

Fişierul de ieşire circular.out conţine o singură linie, pe care se află numărul de numere circulare mai mici ca NN precum şi numărul circular maxim cerut, separate printr-un spaţiu.

Dacă nu există nici un număr circular mai mic ca NN, în fişierul de ieşire se vor afişa două valori 00 separate printr-un spaţiu.

Restricții și precizări

  • 10n<10 000 00010 \leq n < 10 \ 000 \ 000

Exemplu

circular.in

1894250

circular.out

347 1849625

Explicație

Există 347347 numere circulare mai mici ca 1 894 2501 \ 894 \ 250 cel mai mare dintre acestea fiind 1 849 6251 \ 849 \ 625

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