欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

洛谷P1138 第k小整数题解(C++)

程序员文章站 2022-05-14 18:56:57
...
#include <iostream>
#include <cstring>
using namespace std;
bool t[30000];//做个桶排序的数组
int n,k;
int a;
int cnt=0,ans=-1;
int main(){
	memset(t,false,sizeof t);//初始化一下桶
	cin>>n>>k;
	for(int i=0;i<n;i++){
		cin>>a;
		t[a]=true;//如果遇见了这个数就标记一下
	}
	for(int i=0;i<30000;i++){
		if(t[i]) cnt++;//如果有这么个数就把第cnt大整数标记一下
		if(cnt==k){
			ans=i;//如果已经找到第k大整数了,记一下答案
			break;//退出
		}
	}
	if(ans==-1){
		cout<<"NO RESULT"<<endl;//ans最开始是-1,如果是-1的话就证明没有符合得数。
		return 0;
	}
	cout<<ans<<endl;//否则的话输出答案
	return 0;
}

相关标签: 洛谷题解 c++