[COCI2014-2015#6] PAPRIKA
题目描述
厨师 Marin 准备用 n n n 个辣椒制作菜品。
他决定用所有年龄不超过 x x x 天的辣椒来制作菜品 A,用其他的所有辣椒制作菜品 B。
每个辣椒都有自己的梦想,它们知道自己想要成为 A 还是 B。
但它们不知道 x x x 的值。为了最大化实现梦想的辣椒数量,它们会采取如下策略进行交换:
- 第 1 个辣椒与第 2 个辣椒比较年龄,然后第 2 个辣椒与第 3 个辣椒比较年龄,依此类推,直到第 n − 1 n-1 n−1 和第 n n n 个辣椒比较年龄。
- 若当前比较二者的编号为 i , j i,j i,j,其中当前年龄较大的辣椒想成为菜品 A,当前年龄较小的辣椒想成为菜品 B,则它们会交换年龄。 [ 1 ] ^{[1]} [1]
求出这样操作后实现梦想的辣椒数量。
输入格式
第一行两个整数 n , x n,x n,x。
接下来 n n n 行,每行两个整数 a i , b i a_i,b_i ai,bi,分别表示第 i i i 个辣椒的年龄与梦想。
- 若 b i = 1 b_i=1 bi=1,则表示第 i i i 个辣椒想成为菜品 A。
- 若 b i = 0 b_i=0 bi=0,则表示第 i i i 个辣椒想成为菜品 B。
根据这种定义,「题目描述」中
[1]
^\textbf{[1]}
[1] 更加严谨的表述为:
两个辣椒
i
,
j
i,j
i,j 会交换年龄当且仅当
a
i
>
a
j
a_i>a_j
ai>aj 且
b
i
=
1
b_i=1
bi=1 且
b
j
=
0
b_j=0
bj=0。
输出格式
仅一行一个整数,即实现梦想的辣椒数量。
样例 #1
样例输入 #1
4 5
2 0
3 0
4 0
5 0
样例输出 #1
0
样例 #2
样例输入 #2
5 5
3 1
2 0
13 1
2 0
10 1
样例输出 #2
5
样例 #3
样例输入 #3
6 10
15 1
12 1
8 0
10 1
3 0
1 1
样例输出 #3
4
提示
样例 1 说明
没有辣椒想成为菜品 A。
样例 2 说明
每对辣椒都交换了年龄。
数据规模与约定
对于 100 % 100\% 100% 的数据,有 1 ≤ n , x , a i ≤ 1 0 3 1\le n,x,a_i\le 10^3 1≤n,x,ai≤103, b i ∈ { 0 , 1 } b_i\in\{0,1\} bi∈{0,1}。
说明
按原题配置,满分 50 分。
译自 COCI 2014-2015 Contest #6 Task A PAPRIKA。
Scratch实现
后续
接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容