luogu#P6306. 「Wdsr-1」小铃的书

「Wdsr-1」小铃的书

题目背景

本居小铃在人间之里经营着一家名为“铃奈庵”的书店。店里井井有条地堆放着很多很多书。

一天,魔理沙来铃奈庵借书,搞得店里十分混乱,魔理沙随身携带的魔导书与铃奈庵的书籍全都混在了一起。

题目描述

小铃一共有 n1n-1 本书,每本书有一个编号 aia_i,两本书属于同一种类当且仅当两本书的编号相同。

由于小铃平时将这些书整理得井井有条,因此在小铃的 n1n-1 本书中,每个种类的书的数量都恰好是 kk 的倍数,其中 kk 是一给出的常数。

现在,魔理沙的一本编号未知的魔导书与小铃的 n1n-1 本书混在了一起,而魔理沙只有知道魔导书的编号才能将其找回。

由于书的数量实在太多,魔理沙找到了你来帮忙,希望聪明的你能帮她求出混入的魔导书的编号。

注意:魔理沙的魔导书可能与小铃的某本书有着相同的编号。

输入格式

第一行是两个整数 n,kn,k,含义与题目描述一致。

保证 n1(modk)n\equiv 1 \pmod k

第二行共 nn 个整数,表示混在一起的 nn 本书的编号 aia_i

输出格式

共一行一个整数,表示魔理沙的魔导书的编号。

10 3
1 1 2 2 3 5 3 2 1 3
5
13 4
1 1 4 5 1 4 1 4 4 5 5 5 1
1

提示

样例说明

样例 11 中,小铃的书的编号为 1,2,31,2,3,分别有 33 本。因此魔导书的编号为 55

样例 22 中,小铃的书的编号为 1,4,51,4,5,分别有 44 本。因此魔导书的编号为 11


数据范围及约定

本题采取捆绑测试。

$$\def{\arraystretch}{1.5} \def\cuteran{https://www.luogu.com.cn/paste/iyzwht7l} \begin{array}{|c|c|c|}\hline \textbf{Subtask} & \bm{n\le} & \textbf{分值} \cr\hline 1 & 10^5 & 50 \cr\hline 2 & 10^6 & 25 \cr\hline 3 & 10^7 & 25 \cr\hline \end{array} $$

对于全部数据,保证 1n1071 \le n \le 10^72k1032 \le k \le 10^31ai10181 \le a_i \le 10^{18}。保证数据合法,即有且只有一本混入的魔导书。


提示

请注意时空限制。

使用 cin\texttt{cin} / cout\texttt{cout} 可能超时,这里给出一个快速读入模板:

long long qread(){
    long long w=1,c,ret;
    while((c=getchar())> '9'||c< '0')
    w=(c=='-'?-1:1); ret=c-'0';
    while((c=getchar())>='0'&&c<='9')
    ret=ret*10+c-'0';
    return ret*w;
}

或者使用这份模板:

typedef long long LL;
#define gc pa==pb&&(pb=(pa=buf)+fread(buf,1,100000,stdin),pa==pb)?EOF:*pa++
static char buf[100000],*pa(buf),*pb(buf);
inline LL readint() {
	LL x=0;char c=gc;
	while(c<'0'||c>'9')c=gc;
	for(;c>='0'&&c<='9';c=gc)x=x*10+(c&15);
	return x;
}

其中,在开启 O2 开关的前提下,前者在极限数据下的读入要 500ms500\texttt{ms},而后者需要 300ms300\texttt{ms}。也就是说,你的程序至少有 500700ms500\sim 700\texttt{ms} 的时间执行主要算法。