mxxxxqz
查看原帖
mxxxxqz
472950
封禁用户楼主2023/1/28 20:33

搞不懂#1和#3为啥错,球球大佬看一下

#include<bits/stdc++.h>
using namespace std;

int T,n,m,k,f[100005];

int main(){
	cin>>T;
	while(T--){
		priority_queue<int>q;
		cin>>m>>n>>k;
		for(int i=1;i<=n;i++){
			cin>>f[i];
		}
		int now=1;//指针
		for(int i=1;i<=m;i++){
			while((!q.empty())&&-q.top()<i+k&&-q.top()>=i){
				q.pop();//归档
			}
			while(q.size()<k&&now<=n){
				if(f[now]<i||f[now]>=i+k)q.push(-f[now]);//不能直接归档的
				now++;
			}
		}
		if(q.empty()&&now==n+1)cout<<"YE5\n";
		else cout<<"N0\n";//不要在意0和5。。。
	}
	return 0;
}
2023/1/28 20:33
加载中...