2024/2/3 备战蓝桥杯 4-2 排序
目录
错误票据
0错误票据 - 蓝桥云课 (lanqiao.cn)
奖学金
0奖学金 - 蓝桥云课 (lanqiao.cn)
错误票据
0错误票据 - 蓝桥云课 (lanqiao.cn)
特点:不知道每一行要输入的数字有多少个,一共要输入n行数字
可以这样写:
for(int i = 0;i < n;i ++)
    {
        int x;
        while(std::cin >> x)
        {
            a.push_back(x);
            if(std::cin.get()=='\n')
                break;
        }
    } 
完整代码:
#include <bits/stdc++.h>
#define int long long
const int N = 1e5+10;
std::vector<int> a;
std::set<int> s;
signed main()
{
    int n,len=0;
    std::cin >> n;
    int k = 0;
    for(int i = 0;i < n;i ++)
    {
        int x;
        while(std::cin >> x)
        {
            a.push_back(x);
            if(std::cin.get()=='\n')
                break;
        }
    }
    std::sort(a.begin(),a.end());
//    for(int i = 0;i < a.size();i ++)
//    {
//        std::cout<<a[i]<<" ";
//    }
    int duan=0,chong=0;
    for(int i = 1;i < a.size();i ++)
    {
        if(a[i]-a[i-1]==2)
        {
            duan=a[i]-1;
        }
        int x=a[i];
        if(s.find(x)==s.end())
        {
            s.insert(x);
        }
        else if(s.find(x)!=s.end())
        {
            chong=x;
        }
    }
    std::cout<<duan<<" "<<chong;
    return 0;
} 
奖学金
0奖学金 - 蓝桥云课 (lanqiao.cn)
思路:结构体排序,满足返回true,不满足返回false
完整代码:
#include <bits/stdc++.h>
#define int long long
struct node
{
    int xh;
    int yw;
    int sx;
    int yy;
    int sum;
};
std::vector<node> a;
bool cmp(node &a1,node &a2)
{
    if(a1.sum>a2.sum) return true;
    else if(a1.sum<a2.sum) return false;
    else if(a1.yw>a2.yw) return true;
    else if(a1.yw<a2.yw) return false;
    else if(a1.xh<a2.xh) return true;
    else if(a1.xh>a2.xh) return false;
    else return false;
}
signed main()
{
    int n;
    std::cin >> n;
    for(int i = 0;i < n;i ++)
    {
        int x,y,z;
        std::cin >> x >> y >> z;
        a.push_back({i+1,x,y,z,x+y+z});
    }
    std::sort(a.begin(),a.end(),cmp);
    for(int i = 0;i < 5;i++)
    {
        std::cout<<a[i].xh<<" "<<a[i].sum<<"\n";
    }
    return 0;
} 
                