QOJ.ac

QOJ

Time Limit: 5.0 s Memory Limit: 256 MB Total points: 100 Hackable ✓

#7085. Dãy bộ ba bí ẩn

Statistics

Jeffery tìm thấy một dãy bộ ba kỳ diệu $\{(a_k,b_k,c_k)\}_{k=0}^{\infty}$:

  • $(a_0,b_0,c_0)=(2,1,0)$; và

  • với mỗi số nguyên không âm $k$, $(a_{k+1},b_{k+1},c_{k+1})=(a_k^2+b_k^2,a_kb_k+b_kc_k,b_k^2+c_k^2)$.

Ví dụ, $(a_1,b_1,c_1)=(5,2,1)$ và $(a_2,b_2,c_2)=(29,12,5)$.

Nếu xét dãy theo môđun một số nguyên $p$, một số bộ ba sẽ không bao giờ xuất hiện trong dãy này, một số bộ ba sẽ xuất hiện tuần hoàn, còn những bộ ba khác chỉ xuất hiện một lần.

Jeffery muốn biết liệu bạn có thể giúp cậu ấy tìm lần xuất hiện đầu tiên của một số bộ ba, bắt đầu từ các vị trí cho trước hay không. Bạn có thể giúp cậu ấy không?

Dữ liệu vào

Dòng đầu chứa hai số nguyên $n$ và $p$ ($1 \le n \le 5000$, $1 \le p \le 2^{30}$), trong đó $n$ là số câu hỏi và $p$ cho biết tất cả các câu hỏi sau được xét theo môđun $p$.

Mỗi dòng trong $n$ dòng tiếp theo chứa bốn số nguyên $x$, $y$, $z$ và $m$ ($0 \le x,y,z < p$, $0 \le m \le 10^{18}$), biểu diễn một câu hỏi yêu cầu bạn tìm số nguyên $k$ nhỏ nhất sao cho $k \ge m$ và $(a_k,b_k,c_k)\equiv(x,y,z)\pmod p$.

Dữ liệu ra

Với mỗi câu hỏi, in một số nguyên trên một dòng riêng biểu thị đáp án cho câu hỏi đó. Nếu không tồn tại số nguyên $k$ như vậy, hãy in $-1$ thay thế.

Ví dụ

Dữ liệu vào 1

5 11
6 1 4 10
4 10 6 3
7 1 5 0
2 1 0 1
2 1 0 0

Dữ liệu ra 1

11
4
2
-1
0

Dữ liệu vào 2

5 10
5 8 9 5
0 2 6 0
9 2 5 6
5 5 5 7
5 2 1 2

Dữ liệu ra 2

5
-1
6
-1
-1

Ghi chú

Trong ví dụ thứ nhất, $(a_0,b_0,c_0)\equiv(2,1,0)$, $(a_1,b_1,c_1)\equiv(5,2,1)$, $(a_2,b_2,c_2)\equiv(7,1,5)$, $(a_{2T+3},b_{2T+3},c_{2T+3})\equiv(6,1,4)$, $(a_{2T+4},b_{2T+4},c_{2T+4})\equiv(4,10,6)\pmod{11}$ trong đó $T=0,1,2,\ldots$

Trong ví dụ thứ hai, $(a_0,b_0,c_0)\equiv(2,1,0)$, $(a_1,b_1,c_1)\equiv(5,2,1)$, $(a_{2T+2},b_{2T+2},c_{2T+2})\equiv(9,2,5)$, $(a_{2T+3},b_{2T+3},c_{2T+3})\equiv(5,8,9)\pmod{10}$ trong đó $T=0,1,2,\ldots$

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.