0
已解决
丁博扬
中级天翼
中级天翼
1555 微信运动 经验值:0
题目描述 Description
随着微信的普及,微信里应用也逐渐被人们接触并使用。微信运动就是其中一个被广泛使用的应用程序。在这里你可以看到所有微信好友的每天的运动步数,并能看见自己在好友中排名多少位。现在假设有n个好友,自己在微信运动里排倒数第k位(相同步数的只计算一次),请显示他的运动步数。k<=1000,好友数小于10000,运动步数小于30000。
输入描述 Input Description
第一行为n和k; 第二行开始为n个正整数的值,整数间用空格隔开。
输出描述 Output Description
第k个最小整数的值;若无解,则输出“NO RESULT”。
样例输入 Sample Input
10 3 1 3 3 7 2 5 1 2 4 6
样例输出 Sample Output
3
80分代码:
- #include<iostream>
- using namespace std;
- int a[11000],b[31000],cnt;
- int main(){
- int n,m;
- cin>>n>>m;
- for(int i=1;i<=n;i++){
- cin>>a[i];
- b[a[i]]++;
- }
- if(m>n){
- cout<<"NO RESULT";
- }
- if(m<=0){
- cout<<"NO RESULT";
- }
- for(int i=0;i<=30000;i++){
- if(b[i]!=0){
- cnt++;
- }
- if(cnt==m){
- cout<<i;
- break;
- }
- }
- return 0;
- }
0
已采纳
许致远
中级守护
中级守护
- int a[10010],cnt=0,t;
- int main(){
- int n,k;
- cin>>n>>k;
- for(int i=1;i<=n;i++) {
- cin>>a[i];
- }
- for(int i=1;i<=n-1;i++){
- for(int j=i+1;j<=n;j++){
- if(a[i]==a[j])
- a[j]=2100000000;
- }
- }
- for(int i=1;i<=n-1;i++){
- for(int j=i+1;j<=n;j++){
- if(a[i]>a[j]){
- t=a[i];
- a[i]=a[j];
- a[j]=t;
- }
- }
- }
- for(int i=1;i<=n;i++){
- if(a[i]!=2100000000){
- cnt++;
- }
- }
- if(cnt-k>0) cout<<a[k];
- else cout<<"NO RESULT";