okcpp

Time limit: 0.1s Memory limit: 32MB Input: okcpp.in Output: okcpp.out

Despre numărul natural NN spunem că are proprietatea okcpp dacă oricum alegem KK cifre ale sale vom găsi printre ele cel puţin PP cifre distincte (oricare kk cel puţin pp).

Cerinţe

  1. Fiind date numerele naturale KK, PP, AA și BB să se calculeze și să se afișeze numărul de numere okcpp din intervalul [A,B].[A,B].
  2. Fiind date numerele naturale KK, PP și NN să se calculeze și să se afișeze cel mai mic număr okcpp care este mai mare sau egal cu N.N.

Date de intrare

Fişierul de intrare okcpp.in conţine pe primul rând numărul CC. Dacă C=1C=1, atunci pe al doilea rând se vor afla scrise, separate prin spațiu, numerele naturale KK, PP, AA și B.B. Dacă C=2C=2, atunci pe al doilea rând se vor afla scrise, separate prin spațiu, numerele naturale KK, PP și N.N.

Date de ieșire

Dacă C=1C=1, atunci în fişierul de ieşire okcpp.out se va scrie numărul de numere okcpp din intervalul [A;B].[A;B]. Dacă C=2C=2, atunci în fişierul de ieşire okcpp.out se va scrie cel mai mic număr natural okcpp care este mai mare sau egal cu N.N.

Restricții și precizări

  • 1P101 \leq P \leq 10;
  • PKP \leq K \leq numărul de cifre al lui N18N \leq 18;
  • Pentru 20%20\% din teste cerinţa va fi C=1C=1;
  • Pentru cerința C=1C=1 vom avea 0A<B<10180 \leq A < B < 10^{18} și BA10 000B-A \leq 10 \ 000;
  • Pentru cerința C=2C=2 se garantează că există întotdeauna soluție.

Exemplul 1

okcpp.in

1
5 2 99997 100001

okcpp.out

3

Explicație

Avem K=5K=5 și P=2P=2. În intervalul [99 997;100 001][99 \ 997; 100 \ 001] sunt trei numere okcpp\textbf{okcpp}: 99 99799 \ 997, 99 99899 \ 998 și 100 001.100 \ 001.

Exemplul 2

okcpp.in

2
5 3 99997

okcpp.out

100023

Explicație

Avem K=5K=5, P=3P=3 şi N=99 997N=99 \ 997. Se observă uşor că numerele 99 99799 \ 997, 99 99899 \ 998 , \dots, 100 022100 \ 022 nu corespund. Primul număr care corespunde cerinţelor este 100 023.100 \ 023.

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