Set的用法

博客链接

简单例题

问题 C: 【排序】第k小整数

时间限制: 1 Sec  内存限制: 64 MB
提交 状态

题目描述

现有n个正整数,n≤100000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤400。

输入

第1行为n和k,第2行开始为n个正整数的值,整数间用空格隔开。

输出

第k个最小整数的值;若无解,则输出“NO RESULT”。

样例输入 Copy

10  3
1 3 3 7 2 5 1 2 4 6

样例输出 Copy

3
#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include 
using namespace std;
const int mod=1e9+7;
const int N = 10000010;
sets;
int main()
{
    int n,k;
    cin>>n>>k;
    for(int i=1; i<=n; i++)
    {
        int a;
        scanf("%d",&a);
        s.insert(a);
    }
    int cnt=0,f=0;
     set::iterator it;
    for(it=s.begin(); it!=s.end(); it++) //使用迭代器进行遍历
    {
        cnt++;
        if(cnt==k) printf("%d\n",*it),f=1;
        if(cnt>=k) break;
    }
if(f==0) printf("NO RESULT");
    return 0;
}

 

 

你可能感兴趣的:(小专题)