编程题:莫队算法
$$Mirko$$是一个非常简单的人。$$Mirko$$的朋友$$Darko$$给了他一个由$$N$$个自然整数组成的数组,问他$$Q$$个问题,关于这个数组,$$Mirko$$必须回答。每个查询由两个整数组成,即数组中一个间隔的左端和右端位置。查询的答案是在给定的时间间隔中恰好出现两次的不同值的数量。
### 输入格式:
第一行输入包含整数$$N$$和$$Q(1≤N, Q≤500000)$$。输入的第二行包含$$N$$个小于$$1 000 000 000$$的自然整数,这是数组的元素。下面的$$Q$$行包含两个整数$$L$$和$$R(1≤L≤R≤N)$$,来自任务。
### 输出格式:
输出必须由$$Q$$行组成,每一行分别包含一个查询的答案。
### 得分:
在总共为$$56$$分的测试用例中,$$N$$和$$Q$$不会大于$$5000$$。
### 输入样例1:
in
5 1
1 2 1 1 1
1 3
### 输出样例1:
out
1
### 输入样例2:
in
5 2
1 1 1 1 1
2 4
2 3
### 输出样例2:
out
0
1
### 输入样例3:
in
5 2
1 1 2 2 3
1 1
1 5
### 输出样例3:
out
0
2
### 澄清第一个测试用例:
在从第一个元素到第三个元素的间隔中,只有一个数字(数字$$1$$)恰好出现了两次。
答案:若无答案欢迎评论
### 输入格式:
第一行输入包含整数$$N$$和$$Q(1≤N, Q≤500000)$$。输入的第二行包含$$N$$个小于$$1 000 000 000$$的自然整数,这是数组的元素。下面的$$Q$$行包含两个整数$$L$$和$$R(1≤L≤R≤N)$$,来自任务。
### 输出格式:
输出必须由$$Q$$行组成,每一行分别包含一个查询的答案。
### 得分:
在总共为$$56$$分的测试用例中,$$N$$和$$Q$$不会大于$$5000$$。
### 输入样例1:
in
5 1
1 2 1 1 1
1 3
### 输出样例1:
out
1
### 输入样例2:
in
5 2
1 1 1 1 1
2 4
2 3
### 输出样例2:
out
0
1
### 输入样例3:
in
5 2
1 1 2 2 3
1 1
1 5
### 输出样例3:
out
0
2
### 澄清第一个测试用例:
在从第一个元素到第三个元素的间隔中,只有一个数字(数字$$1$$)恰好出现了两次。
答案:若无答案欢迎评论