WSET
Cho số nguyên \(N\) và dãy số nguyên \(A_1,A_2,…,A_N\). Cho số nguyên tố \(p\).
Một tập hợp đẹp \(S\) là tập hợp các phần tử trong dãy sao cho đối với bất kỳ \(A_i\) và \(A_j\) nào có trong tập hợp \(S\) đều thỏa điều kiện:\((A_i×A_j)\) mod p ≠1.
Yêu cầu: Tìm tập hợp S chứa các phần tử trong dãy \(A_1,A_2,…,A_N\) sao cho tập \(S\) là đẹp và số lượng phần tử trong \(S\) là lớn nhất. Lưu ý rằng hai tập hợp được coi là khác nhau nếu chúng chứa ít nhất một phần tử khác nhau. Hai tập hợp được coi là giống nhau nếu chúng chứa cácphần tử giống nhau.
Input
Dòng thứ nhát chứa hai số nguyên \(N,p\) (\(2 ≤ N ≤ 2*10^5; 2 < p < 10^5 \)).
Dòng thứ hai chứa \(N\) số nguyên \( A_1,A_2,…,A_N \) (1 ≤ A_i ≤ 10^18 )
Output
- Ghi một số nguyên là số lượng phần tử lớn nhất của tập S tìm được.
Sample Input
5 5
2 3 4 22 33
Sample Output
2
Giải thích
Có 2 tập hợp đẹp là {2, 22} và {3, 33}. Do đó, Số lượng phần tử lớn nhất của tập hợp đẹp = 2.
Comments