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 
#define int long long
const int N = 1e5+10;
std::vector a;
std::set 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<

奖学金

0奖学金 - 蓝桥云课 (lanqiao.cn)

思路:结构体排序,满足返回true,不满足返回false

完整代码:

#include 
#define int long long
struct node
{
    int xh;
    int yw;
    int sx;
    int yy;
    int sum;
};
std::vector a;
bool cmp(node &a1,node &a2)
{
    if(a1.sum>a2.sum) return true;
    else if(a1.suma2.yw) return true;
    else if(a1.ywa2.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<

你可能感兴趣的:(寒假集训,蓝桥杯,蓝桥杯,算法,c++,c语言)