3 条题解

  • 0
    @ 2021-12-21 13:10:29

    用c++11的容器和容器算法不需要动什么脑筋儿

    #include <iostream>
    #include <vector>
    #include <memory>
    #include <map>
    #include <algorithm>
    using namespace std;
    
    int main(int argc, char const *argv[])
    {
        int n, k;
        cin >> n >> k;
    
        map<int, int> map;
        for (int i = 0; i < n; i++)
        {
            int sno, score;
            cin >> sno >> score;
            map.insert({sno, score});
        }
        cout << endl;
        vector<pair<int, int>> vector(map.begin(), map.end());
        sort(vector.begin(), vector.end(), [](const pair<int, int> &a, const pair<int, int> b)
             {
                 if (a.second > b.second)
                     return true;
                 else if (a.second == b.second)
                 {
                     return a.first < b.first;
                 }
                 return false;
             });
        cout << vector[k-1].first << " " << vector[k-1].second << endl;
        return 0;
    }
    
  • 0
    @ 2021-03-23 20:25:35

    不会有人用纯数组吧,震惊我一百年

    #include<iostream>
    using namespace std;
    struct paimin{
        int xuehao;
        int chengji;
    }a[100000];
    int main()
    {
        int n,x;cin>>n>>x;
        for(int i=0;i<n;i++) cin>>a[i].xuehao>>a[i].chengji;
        for(int i=0;i<n;i++)
            for(int j=i+1;j<n;j++)
                if(a[i].chengji<a[j].chengji)
                    swap(a[i],a[j]);
        for(int i=0;i<n;i++)
            for(int j=i+1;j<n;j++)
                if(a[i].chengji==a[j].chengji)
                {
                    if(a[i].xuehao>a[j].xuehao)
                    swap(a[i],a[j]);
                }
        cout<<a[x-1].xuehao<<" "<<a[x-1].chengji;
        system("pause");
        return 0;
    }
    
  • 0
    @ 2020-01-01 16:51:22

    #include <stdio.h>
    struct student
    {
    int id;
    int score;
    };
    int main()
    {
    struct student t,stu[100000];
    int i,j,n,k;
    scanf("%d%d",&n,&k);
    for(i=0;i<n;i++)
    scanf("%d%d",&stu[i].id,&stu[i].score);
    for(i=1;i<n;i++)
    for(j=i-1;j>=0;j--)
    {
    if(stu[j].score<stu[j+1].score)
    {
    t=stu[j];
    stu[j]=stu[j+1];
    stu[j+1]=t;
    }
    if(stu[j].score==stu[j+1].score)
    {
    if(stu[j].id>stu[j+1].id)
    {
    t=stu[j];
    stu[j]=stu[j+1];
    stu[j+1]=t;
    }
    }
    }
    printf("%d %d\n",stu[k-1].id,stu[k-1].score);
    return 0;
    }

  • 1

信息

难度
8
分类
(无)
标签
递交数
373
已通过
57
通过率
15%
被复制
9
上传者