Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P179PROJ - ROUND 9J - DÃY CON TĂNG DẦN |
Cho dãy số S[] gồm n phần tử. Nhiệm vụ của bạn là đếm số lượng dãy con tăng dần (tăng chặt). Ví dụ a[] = [1, 4, 2, 3, 5, 5]. Một số dãy con tăng dần đó là [1 4], [1, 2], [1, 2, 5], … Có 2 dãy con [1, 2, 5] vì có 2 cách lựa chọn chúng từ dãy số ban đầu.
Dãy số S[] được sinh ra theo quy tắc như sau: với dãy số A[] gồm m phần tử,
for i = 0 to n-1
S[i] = A[i mod m]
A[i mod m] = (X * A[i mod m] + Y * (i + 1)) mod Z
Input
Dòng đầu tiên là số lượng bộ test T (T <= 20).
Mỗi bộ test gồm n, m, X, Y, Z (1 <= m <= n <= 500 000, X, Y, Z <= 10^9).
Dòng tiếp theo gồm m số nguyên của dãy số A[].
Output
Với mỗi test in ra STT và đáp án tìm được theo modulo 10^9+7.
Example
Input: 2
5 5 0 0 5
1
2
1
2
3
6 2 2 1000000000 6
1
2
Output: Case #1: 15
Case #2: 13
Giải thích test 1: Dãy số S[] = [1, 2, 0, 0, 0, 4].
Được gửi lên bởi: | adm |
Ngày: | 2017-04-17 |
Thời gian chạy: | 3s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 ASM64 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |