Tam giác vuông trên vòng tròn

View as PDF

Submit solution


Points: 0.62 (partial)
Time limit: 0.9s
Memory limit: 512M
Input: stdin
Output: stdout

Problem source:
SRM 473, Div 1 - Level 2Người dịch: Ngô Minh Ðức
Problem type
Allowed languages
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho ~N~ điểm cách đều nhau trên một vòng tròn được đánh số từ ~0~ đến ~N - 1~ theo chiều kim đồng hồ, trong đó có ~P~ điểm được sơn màu đỏ. Hãy đếm số tam giác vuông có ~3~ đỉnh đều được sơn màu đỏ.

Biết rằng ~P~ điểm màu đỏ được tạo thành như sau, cho trước ~3~ số nguyên ~a~, ~b~, ~c~. Với ~i = 0~, ~1~, ~2~, ~3~, ~\cdots~, ~P - 1~, thực hiện các bước sau:

  • Tính ~P[i]~ ~=~ ~(a \times i \times i + b \times i + c)~ mod ~N~.
  • Bắt đầu từ ~P_i~, tìm điểm đầu tiên theo chiều kim đồng hồ mà chưa được sơn đỏ và sơn đỏ điểm đó

Input

  • Mỗi test bắt đầu bằng thẻ [CASE], các test cách nhau bởi một dòng trắng. Thẻ [END] báo hiệu kết thúc file input.
  • Mỗi test gồm ~5~ dòng chứa các số ~N~, ~P~, ~a~, ~b~, ~c~ ~(1 \leq N \leq 10^6, 0 \leq P \leq 10^5, 0 \leq a, b, c \leq 10^6)~.

Output

  • Với mỗi test in ra số tam giác vuông tìm được.

Sample Input

[CASE]
9
3
0
3
0

[CASE]
40
3
5
0
0

[CASE]
4
4
16
24
17

[CASE]
1000000
47000
0
2
5

[CASE]
200000
700
123456
789012
345678

[END]

Sample Output

0
1
4
0
6980

Comments

Please read the guidelines before commenting.


There are no comments at the moment.