Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
Dane są dwie liczby naturalne A oraz B. Naszym celem jest w tym zadaniu jest spowodować, żeby A = B.
Możliwe jest wykonywanie następujących operacji:
- A ← s(A),
- B ← s(B),
- A ← A + 1,
- B ← B + 1.
Funkcja s(⋅) jako argument przyjmuje liczbę naturalną i zwraca jako wynik jej sumę cyfr. Przykładowo: s(123) = 6.
Ile najmniej operacji należy wykonać, żeby spowodować, że podane na wejściu liczby będą równe? Żeby nie było tak łatwo, Twój program będzie musiał rozpatrzyć wiele przypadków par (Ai,Bi) i dla każdej z nich (szybko) udzielić poprawnej odpowiedzi.
Napisz program, który: wczyta liczbę zapytań oraz dla każdego z nich liczby naturalne Ai i Bi, odpowie na wszystkie zapytania, tj. wyznaczy minimalną liczbę operacji, które należy wykonać, żeby wyrównać liczby Ai i Bi i wypisze wyniki na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba naturalna Q, określająca liczbę zestawów danych. W kolejnych Q wierszach znajduje się opis kolejnych zestawów danych, po jednym w wierszu. Opis każdego zestawu danych składa się z dwóch liczb naturalnych Ai oraz Bi, oddzielonych pojedynczym odstępem.
Wyjście
Twój program powinien wypisać dokładnie Q wierszy. W i-tym z nich powinna się znaleźć odpowiedź dla i-tego zestawu danych, czyli jedna nieujemna liczba całkowita – minimalna liczba operacji, które należy wykonać, aby spowodować, że liczby Ai oraz Bi będą sobie równe.
Ograniczenia
1 ≤ Q ≤ 100 000, 0 ≤ Ai, Bi ≤ 1018.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
W pierwszym przypadku możemy wykonać następujący ciąg operacji: (12,18) → (12,19) → (12,10) → (12,11) → (12,12). |