4142 - 岗位统计

题目描述

某科研机构正在对一条生产线进行管理分析。生产线上依次站着 N 名工作人员,从左到右依次编号为 1 \sim N

机构的所有工作人员划分为 三种不同的岗位类型,每名工作人员恰好属于其中一种,岗位类型编号分别为 1, 2, 3

管理部门需要频繁统计某一连续区间内,各种岗位类型的人员数量。为此,他们提出了 Q 次统计请求,每次请求都会给出一个区间 [l, r],要求统计编号在该区间内的工作人员中,三种岗位类型分别有多少人。

请你编写程序,高效地回答所有统计请求。

输入

第一行包含两个整数 N, Q,分别表示工作人员人数和统计请求次数。

接下来 N 行,每行一个整数,第 i 行表示编号为 i 的工作人员所属的岗位类型(只可能为 1, 2, 3 中的一个)。

接下来 Q 行,每行包含两个整数 l, r,表示一次统计请求,要求统计区间 [l, r] 内三种岗位类型的人数。

输出

对于每一次统计请求,输出一行,包含三个整数,依次表示在指定区间内:岗位类型分别为 1 2 3 的人数,整数之间用空格分隔。

样例

输入

6 3
2
1
1
3
2
1
1 6
3 3
2 4

输出

3 2 1
1 0 0
2 0 1

输入

10 5
1
2
3
1
2
2
3
1
1
2
1 10
3 7
4 9
2 5
6 6

输出

4 4 2
1 2 2
3 2 1
1 2 1
0 1 0

输入

12 6
2
1
3
2
1
1
3
2
3
1
2
1
1 12
2 8
5 10
3 3
6 12
4 9

输出

5 4 3
3 2 2
3 1 2
0 0 1
3 2 2
2 2 2
说明

样例 1 说明

  • 第一次查询区间 [1,6],其中:岗位类型 1 有 3 人、岗位类型 2 有 2 人、岗位类型 3 有 1 人。

  • 第二次查询区间 [3,3],只有第 3 名工作人员,其岗位类型为 1。

  • 第三次查询区间 [2,4],其中:岗位类型 1 有 2 人、岗位类型 3 有 1 人。

数据范围

对于 40\% 的数据,满足 1 \le N, Q \le 1000

对于 100\% 的数据,满足 1 \le N, Q \le 10^5,岗位类型编号只可能为 1, 2, 3,查询区间满足 1 \le l \le r \le N

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 3 枚
难度 基础


上一题 下一题