Problem
https://vn.spoj.com/problems/TRICIR
https://oj.vnoi.info/problem/TRICIR
Đề bài
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, ..., P - 1
, thực hiện các bước sau:
- Tính
P[i] = (a*i*i + b*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 đó
Dữ liệu
- 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
Kết quả
- Với mỗi test in ra số tam giác vuông tìm được.
Giới hạn
1 <= N <= 1 000 000
0 <= P <= 100 000
0 <= a, b, c <= 1 000 000
Ví dụ
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]
Output
0
1
4
0
6980
Tutorial
Submission
TRICIR.cpp