COCI '15 Contest 4 #4 Chewbacca

View as PDF

Submit solution

Points: 12 (partial)
Time limit: 0.6s
Memory limit: 64M

Problem type
Allowed languages
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, CommonLisp, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, Nim, ObjC, OCaml, Octave, Pascal, Perl, PHP, Pike, Prolog, Python, Racket, Ruby, Rust, Scala, Scheme, Sed, Swift, TCL, Text, Turing, VB, Zig

You are given a tree of order K with N nodes or, in other words, each node can have at most K children. The tree is constructed so it's of the "lowest energy": the nodes are placed in a new depth of the tree only when all the places (from left to right) in the previous depth have been filled. This is also the order of enumerating the nodes, starting with 1. Image depicts an example of a tree of order 3 with 9 nodes.

You need to output answers to Q queries in the form of x y, where the answer is the minimal number of steps needed to get from node x to node y.


The first line of input contains the integers N (1 \le N \le 10^{15}), K (1 \le K \le 1\,000) and Q (1 \le Q \le 100\,000) from the task.

Each of the following Q lines contains pairs x y (1 \le x, y \le N, x \neq y) from the task.


Output Q lines, each line containing the answer to a query from the task.


In test cases worth 20% of total points, it will hold 1 \le N, Q \le 1\,000.

In test cases worth 50% of total points, it will hold 1 \le N, Q \le 100\,000.

Sample Input 1

7 2 3
1 2
2 1
4 7

Sample Output 1


Explanation for Sample Output 1

You are given a complete binary tree. Node 2 is a direct child of node 1 so the distance between them is exactly 1. Nodes 4 and 7 are on complete opposite sides of the tree, so the distance between them is 4: 4 \to 2 \to 1 \to 3 \to 7.

Sample Input 2

9 3 3
8 9
5 7
8 4

Sample Output 2


Explanation for Sample Output 2

This example corresponds to the image.


There are no comments at the moment.