P1138 第k小整数
程序员文章站
2022-05-14 20:29:50
...
P1138 第k小整数
题目描述
现有nn个正整数,n≤10000n≤10000,要求出这nn个正整数中的第kk个最小整数(相同大小的整数只计算一次),k≤1000k≤1000,正整数均小于3000030000。
输入格式
第一行为nn和kk; 第二行开始为nn个正整数的值,整数间用空格隔开。
输出格式
第kk个最小整数的值;若无解,则输出“NO RESULT”。
输入输出样例
输入
10 3
1 3 3 7 2 5 1 2 4 6
输出
3
说明/提示
n≤10000
排序问题,先去重再排序
#include<stdio.h>
int main(){
int i,j,k,n,temp,x,time,judge=0;
i=k=j=n=temp=time=x=0;
scanf("%d%d",&n,&k);
int num[n];
for(i=0;i<n;++i){
num[i]=0;
}
for(i=0,j=0;i<n;i++){
scanf("%d",&temp);
if(i==0){
num[j]=temp;
j++;
}
else{
judge=0;
for(x=0;x<i;++x){
if(num[x]==temp){
judge++;
break;
}
}
if(judge==0){
num[j]=temp;
j++;
}
}
}
if(k>j){
printf("NO RESULT\n");
goto loop;
}
for(i=0;i<j;i++){
for(x=i+1;x<j;x++){
if(num[i]>num[x]){
temp=num[i];
num[i]=num[x];
num[x]=temp;
}
}
}
printf("%d\n",num[k-1]);
loop:return 0;
}