ConcursC++17

okcpp

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

  • 1≤P≤101 \leq P \leq 10;
  • P≤K≤P \leq K \leq numărul de cifre al lui N≤18N \leq 18;
  • Pentru 20%20\% din teste cerinţa va fi C=1C=1;
  • Pentru cerința C=1C=1 vom avea 0≤A<B<10180 \leq A < B < 10^{18} și B−A≤10 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.

Sursă și autori

ONI 2017, clasele 9. Ionel-Vasile Piț-Rada.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑