Set的用法

    技术2022-07-17  69

    博客链接

    简单例题

    问题 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 <bits/stdc++.h> using namespace std; const int mod=1e9+7; const int N = 10000010; set<int>s; 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<int>::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; }

     

     

    Processed: 0.013, SQL: 9