题号:NC219172
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
牛妹有一个微服务,一开始微服务都没有任何的动态特征,取完动态特征之后会存到机器上,如果机器存储了该动态特征就不需要再取,否则就需要进行服务间通信。每一个动态特征都有相同的置信度

秒,如果这个动态特征是在时间戳为

秒的时候取的,那么这个动态特征在时间戳

秒后(包含

秒)会被扔掉,需要重新取这个特征。
牛牛给动态特征定义了优先级,如果某个动态特征的最近使用过,那么它的优先级就更高。例如有两个动态特征,一个动态特征A在之前使用过,另一个动态特征B在动态特征A最后一次使用之后都没有使用过,那么动态特征A的优先级就比动态特征B的优先级高。机器只能存放

个动态特征,那么优先级前

大的动态特征就会被留下,而优先级比第

个动态特征优先级小的就会被扔掉。
现在牛妹有一台机器,微服务需要取

次动态特征,每一次会告诉你需要取动态特征的ID以及取动态特征的时间戳(单位秒),你需要判断每次取特征需不需要进行服务间通信。
输入描述:
第一行输入三个整数
、
和
,分别表示需要取动态特征的次数、这台机器能存放动态特征的个数以及所有动态特征的置信度。(
)
接下来
行每行两个整数
和
,分别表示取动态特征的ID以及取动态特征时的时间戳,不保证时间戳按序给出,保证给出的时间戳是两两不相同的。(
)
输出描述:
对于每一次取动态特征,输出一行字符串。如果需要进行服务间通信则输出YES,否则输出NO。
示例1
输入
复制
8 2 5
1 1
2 2
3 6
2 7
1 8
3 9
2 3
1 4
输出
复制
YES
YES
YES
YES
YES
YES
NO
NO
说明
第1秒,取动态特征1,缓存中没有,则需要服务间通信,将动态特征1放入缓存中,缓存充足不需要进行淘汰。
第2秒,取动态特征2,缓存中没有,则需要服务间通信,将动态特征2放入缓存中,缓存充足不需要进行淘汰。
第3秒,取动态特征2,缓存中有,则不需要服务间通信。
第4秒,取动态特征1,缓存中有,则不需要服务间通信。
第6秒,动态特征1因为不被置信而在缓存中被淘汰。
第6秒,取动态特征3,缓存中没有,则需要服务间通信,将动态特征3放入缓存中,缓存充足不需要进行淘汰。
第7秒,动态特征2因为不被置信而在缓存中被淘汰。
第7秒,取动态特征2,缓存中没有,则需要服务间通信,将动态特征2放入缓存中,缓存充足不需要进行淘汰。
第8秒,取动态特征1,缓存中没有,则需要服务间通信,将动态特征1放入缓存中,此时缓存超出2个动态特征,动态特征3因为优先级是最低的而被淘汰。
第9秒,取动态特征3,缓存中没有,则需要服务间通信,将动态特征3放入缓存中,此时缓存超出2个动态特征,动态特征2因为优先级是最低的而被淘汰。
示例2
输入
复制
5 2 100
1 1
2 2
1 3
3 4
2 5
说明
第1秒,取动态特征1,缓存中没有,则需要服务间通信,将动态特征1放入缓存中,缓存充足不需要进行淘汰,此时动态特征1的优先级是最高的。
第2秒,取动态特征2,缓存中没有,则需要服务间通信,将动态特征2放入缓存中,缓存充足不需要进行淘汰,此时动态特征2的优先级是最高的。
第3秒,取动态特征1,缓存中有,则不需要进行服务间通信,此时动态特征1的优先级是最高的。
第4秒,取动态特征3,缓存中没有,则需要服务间通信,将动态特征3放入缓存中,此时缓存超出2个动态特征,动态特征2因为优先级是最低的而被淘汰,此时动态特征3的优先级是最高的。
第5秒,取动态特征2,缓存中没有,则需要服务间通信,将动态特征2放入缓存中,此时缓存超出2个动态特征,动态特征1因为优先级是最低的而被淘汰,此时动态特征2的优先级是最高的。