ONE4EVER - Forever Alone Person
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 512 megabyte
Đăng bởi: admin

Dù thông minh, đẹp trai, học giỏi nhưng vẫn không thoát khỏi kiếp FA vì chỉ có 8cm và lười tắm, Khánh 3508 lại buồn bã trở về vnoi code lại từ đầu. Trong một ngày chán như con gián, Khánh 3508 nhổ trộm bông hướng dương nhà hàng xóm và ngồi … đếm cánh hoa. Mỗi lần một cánh hoa rụng xuống là câu nói “Tắm”, “Không tắm” lại vang lên. Đã ba năm trôi qua Khánh 3508 vẫn chỉ ngồi đếm lá và chưa tắm rồi đột nhiên anh ta đứng lên và chạy về máy tính: “Đúng rồi số ngẫu nhiên!”. Hóa ra Khánh 3508 đã nghĩ ra cách làm mới mà không phải nhổ trộm hoa + ngồi đếm số cánh hoa. Chúng ta biết rằng số ngẫu nhiên được sinh ra bởi bộ ba số a, b, m theo quy tắc:

+Số thứ nhất là x=b mod m
+Số thứ k (a*xk-1 +b) mod m với k>1

Khánh 3508 sẽ lấy số xk để so với lịch xem nó có phải ngày đẹp hay không để quyết định tắm rửa. Tuy nhiên do thích chơi trội Khánh 3508 đã để a, b, m, k rất lớn khiến máy tính bị đơ. Bạn hãy giúp Khánh tính xk thật nhanh để cậu ta có thể tắm.

Dữ liệu

  • Dòng 1: Số nguyên T (1≤T≤10) là số lượng test
  • T dòng tiếp theo, mỗi dòng gồm 4 số nguyên a, b, m, k (1≤a, b, m, k≤1015)

Kết quả

  • Gồm T dòng, mỗi dòng in ra số xk tương ứng.

Ví dụ

Input:

 

3
1 1 1 1
2 5 100 6
1 8 777 6

Output:

0
15
48


Nguồn: vn.spoj.com

Back to Top