Patron

Time limit: 0.2s Memory limit: 64MB Input: patron.in Output: patron.out

Ești patron al unui magazin unde se află mai multe produse. Cu o parte din banii strânși ți-ai propus să mergi la ski iarna aceasta. Totuși, după ce s-au pus noile taxe ești în pericol de a nu îți mai permite vacanța mult dorită. Trebuie să acționezi cât mai repede, taxele fiind puse astfel încât să încurce cât mai multă lume. Ele nu sunt date într-o valoare fixă sau în procente cum ar fi normal, ci după următoarea regulă: dacă pp este prețul produsului inițial, după aplicarea taxelor, noul preț va fi primul număr prim mai mare sau egal cu pp. Dacă prețul inițial este deja un număr prim, acesta nu se va modifica. La raftul magazinului tău se află NN produse în ordine cu prețuri nu neapărat diferite. Mai întâi ai vrea să afli noile prețuri ale fiecărui produs. Apoi, dacă prețul unui produs s-a mărit cu cel mult un număr natural LL, atunci produsul este încă profitabil și îl vei păstra. Restul produselor vor fi eliminate după cum urmează. Într-o mutare se pot elimina mai multe produse neprofitabile dacă se află pe poziții consecutive pe raft. Te interesează numărul minim de mutări pentru a rămâne doar cu produse profitabile.

Cerință

  • Determinați noile prețuri ale produselor.
  • Determinați numărul minim de mutări pentru a rămâne doar cu produse profitabile.

Date de intrare

Pe prima linie a fișierului de intrare patron.in se găsește CC reprezentând cerința, apoi NN reprezentând numărul de produse de pe raftul magazinului, apoi LL reprezentând taxa maximă aplicată unui produs pentru a rămâne profitabil. Pe următoarea linie se află NN numere naturale separate prin spațiu reprezentând prețul inițial al fiecărui produs.

Date de ieșire

Dacă C=1C=1, pe prima linie a fișierului de ieșire patron.out se vor găsi NN numere, reprezentând prețul fiecărui produs după aplicarea taxelor. Dacă C=2C=2, pe prima linie se va afla un singur număr natural reprezentând numărul minim de mutări pentru a scoate de pe raft toate produsele neprofitabile.

Restricții și precizări

  • Fie pip_i prețul inițial al unui produs
  • 1N,L1 000 0001 \leq N,L \leq 1 \ 000 \ 000
  • 1pi5 000 0001 \leq p_i \leq 5 \ 000 \ 000
# Punctaj Restricții
1 15 C=1,1N,pi2 000C=1, 1 \leq N,p_i \leq 2 \ 000
2 15 C=1,1N100 000C=1, 1 \leq N \leq 100 \ 000
3 30 C=1C=1
4 10 C=2,1N,pi2 000C=2, 1\leq N,p_i \leq 2 \ 000
5 10 C=2,1N2 000C=2, 1\leq N \leq 2 \ 000
6 20 C=2C=2

Exemplul 1

patron.in

1 10 2
8 14 8 2 3 10 20 4 25 1 

patron.out

11 17 11 2 3 11 23 5 29 2

Explicație

Primul număr prim mai mare sau egal cu 2525 este 2929. Numerele 2525, 2626, 2727, 2828 NU sunt prime.

Exemplul 2

patron.in

2 10 2
8 14 8 2 3 10 20 4 25 1 

patron.out

3

Explicație

Taxele sunt în ordine 33, 33, 33, 00, 00, 11, 33, 11, 44, 11. Primele 3 produse neprofitabile se află pe poziții consecutive, deci pot fie eliminate printr-o singură mutare.

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