#12769. 奶牛品种统计(Breed Counting)
奶牛品种统计(Breed Counting)
USACO 2015 December Contest · Silver
题目 3:奶牛品种统计(Breed Counting)
题目描述
农夫 John 的 N 头奶牛整齐地排成一排,编号为 1…N。
每头奶牛都有一个 品种编号:
1表示 Holsteins(荷斯坦牛)2表示 Guernseys(根西牛)3表示 Jerseys(泽西牛)
农夫 John 想统计:在某些区间内,每种品种的奶牛分别有多少头。
给定多次查询,每次查询一个区间 [a, b],你需要输出:
- 区间内 品种 1 的奶牛数量
- 区间内 品种 2 的奶牛数量
- 区间内 品种 3 的奶牛数量
输入格式
第一行包含两个整数:
N Q
N表示奶牛数量Q表示查询数量
接下来 N 行,每行一个整数:
breed_i
表示第 i 头奶牛的品种编号(1、2 或 3)。
接下来 Q 行,每行两个整数:
a b
表示一次查询区间 [a, b]。
输出格式
对于每一次查询 [a, b],输出一行三个整数:
count1 count2 count3
分别表示区间 [a, b] 内:
- 品种
1的奶牛数量 - 品种
2的奶牛数量 - 品种
3的奶牛数量
数字之间用空格分隔。
数据范围
1 ≤ N ≤ 100000
1 ≤ Q ≤ 100000
1 ≤ a ≤ b ≤ N
breed_i ∈ {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
样例解释
奶牛品种序列为:
2 1 1 3 2 1
查询结果:
1️⃣ 查询 [1,6]
1号品种:3
2号品种:2
3号品种:1
2️⃣ 查询 [3,3]
只有第3头牛 → 品种1
3️⃣ 查询 [2,4]
1 1 3
统计得到:
2 0 1