CF1227F2.Wrong Answer on test 233 (Hard Version)
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Your program fails again. This time it gets "Wrong answer on test 233"
.This is the harder version of the problem. In this version, 1≤n≤2⋅105 . You can hack this problem if you locked it. But you can hack the previous problem only if you locked both problems.
The problem is to finish n one-choice-questions. Each of the questions contains k options, and only one of them is correct. The answer to the i -th question is hi , and if your answer of the question i is hi , you earn 1 point, otherwise, you earn 0 points for this question. The values h1,h2,…,hn are known to you in this problem.
However, you have a mistake in your program. It moves the answer clockwise! Consider all the n answers are written in a circle. Due to the mistake in your program, they are shifted by one cyclically.
Formally, the mistake moves the answer for the question i to the question imodn+1 . So it moves the answer for the question 1 to question 2 , the answer for the question 2 to the question 3 , ..., the answer for the question n to the question 1 .
We call all the n answers together an answer suit. There are kn possible answer suits in total.
You're wondering, how many answer suits satisfy the following condition: after moving clockwise by 1 , the total number of points of the new answer suit is strictly larger than the number of points of the old one. You need to find the answer modulo 998244353 .
For example, if n=5 , and your answer suit is a=[1,2,3,4,5] , it will submitted as a′=[5,1,2,3,4] because of a mistake. If the correct answer suit is h=[5,2,2,3,4] , the answer suit a earns 1 point and the answer suite a′ earns 4 points. Since 4>1 , the answer suit a=[1,2,3,4,5] should be counted.
输入格式
The first line contains two integers n , k ( 1≤n≤2⋅105 , 1≤k≤109 ) — the number of questions and the number of possible answers to each question.
The following line contains n integers h1,h2,…,hn , ( 1≤hi≤k) — answers to the questions.
输出格式
Output one integer: the number of answers suits satisfying the given condition, modulo 998244353 .
输入输出样例
输入#1
3 3 1 3 1
输出#1
9
输入#2
5 5 1 1 4 2 2
输出#2
1000
输入#3
6 2 1 1 2 2 1 1
输出#3
16
说明/提示
For the first example, valid answer suits are [2,1,1],[2,1,2],[2,1,3],[3,1,1],[3,1,2],[3,1,3],[3,2,1],[3,2,2],[3,2,3] .