Summer School 2023 - Beginners 28 (Jumps)

View as PDF

Submit solution

Points: 1 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem types
Allowed languages
C, C++, Java, Pascal, Python
Jumps

Βρίσκεσαι σε ένα πεζοδρόμιο και μπορείς να κάνεις άλματα από το πλακάκι που στέκεσαι σε πλακάκια μπροστά σου. Στην αρχή είσαι στην θέση 1 και θες να φτάσεις στην θέση N με όσο το δυνατόν λιγότερα άλματα γίνεται. Αν βρίσκεσαι στη θέση i, με ένα άλμα μπορείς να πας στη θέση i+j όπου 1 \le j \le M.

Να βρεθεί το ελάχιστο πλήθος αλμάτων που χρειάζεσαι για να φτάσεις από την αρχική θέση στον προορισμό σου.

Δεδομένα εισόδου

Η είσοδος δίνεται από 2 αριθμούς, N και M αντίστοιχα, σε μία γραμμή χωρισμένους με ένα κενό ανάμεσά τους.

Δεδομένα εξόδου

Η έξοδος πρέπει να αποτελείται από 1 αριθμό, το ελάχιστο πλήθος αλμάτων που χρειάζεσαι.

Περιορισμοί
  • 1 \le N \le 1.000.000
  • 1 \le M \le 1000

  • Όριο χρόνου εκτέλεσης: 1 sec.

  • Όριο μνήμης: 64 MB.
Παράδειγμα

input

14 3

output

5
Επεξήγηση παραδείγματος

Μπορείς να φτάσεις με 5 άλματα μήκους 1 έως 3 στον προορισμό σου ως εξής:

  • 1 \to 4 (μήκους 3)
  • 4 \to 7 (μήκους 3)
  • 7 \to 10 (μήκους 3)
  • 10 \to 13 (μήκους 3)
  • 13 \to 14 (μήκους 1)

Δεν υπάρχει τρόπος να φτάσεις από το 1 στο 14 με λιγότερα από 5 τέτοια άλματα.


Comments

There are no comments at the moment.