canuc80k0128·29/50

Bước Nhảy Theo Chẵn Lẻ

Nộp bài trên LQDOJ

Bài 01 · Ad Hoc

Một điểm bắt đầu tại tọa độ nguyên trên trục số. Ở bước thứ , nó dịch đúng đơn vị:

  • nếu tọa độ ngay trước bước là số chẵn, nó đi sang trái;
  • nếu tọa độ ngay trước bước là số lẻ, nó đi sang phải.

Quy ước chẵn/lẻ áp dụng như thường lệ cho cả số âm. Với mỗi bộ test, hãy tính tọa độ sau đúng bước.

Input

  • Dòng đầu chứa số nguyên - số bộ test.
  • Mỗi bộ test chứa hai số nguyên và : tọa độ ban đầu và số bước.

Output

  • Với mỗi bộ test, in tọa độ sau đúng bước.

Constraints

  • .
  • .
  • .
  • Ở bước thứ , độ dài bước bằng ; hướng được quyết định từ parity của tọa độ ngay trước bước.

Scoring

  • Subtask ( số điểm): và .
  • Subtask ( số điểm): Không có giới hạn bổ sung.

Example

Test 1

Input

6
0 0
2 1
3 2
-5 3
10 4
-2 5

Output

0
1
2
-9
10
-7

Giải thích: Chẳng hạn từ , ba bước lần lượt đi phải tới , đi trái tới , rồi đi trái tới . Các test còn lại áp dụng cùng quy tắc.

Lời giải tóm tắt
  • Ý tưởng: Xét trước hết x_0 chẵn. Sau số bước n, độ dời chỉ phụ thuộc n mod 4: lần lượt là 0, -n, +1, n+1 cho phần dư 0,1,2,3. Có thể kiểm tra bốn bước liên tiếp rồi thấy trạng thái lặp theo chu kỳ. Nếu x_0 lẻ, mọi hướng trong diễn biến bị đảo, nên đổi dấu độ dời.
  • Ý tưởng: Tính d theo bốn trường hợp, đổi dấu khi x_0 lẻ rồi in x_0+d. Mỗi test mất O(1) thời gian và bộ nhớ.