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;
}