社区讨论

0分重构两遍了,求调

B2160病人排队参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@miybg4i1
此快照首次捕获于
2025/12/09 16:26
3 个月前
此快照最后确认于
2025/12/11 23:20
3 个月前
查看原帖
没找到逻辑哪里有问题...
CPP
//样例输入:
// 5
// 021075 40
// 004003 15
// 010158 67
// 021033 75
// 102012 30

//样例输出:
// 021033
// 010158
// 021075
// 004003
// 102012

//我的输出:
// 021033
// 010158
// 004003
// 021075
// 102012
#include<bits/stdc++.h>
using namespace std;
struct sik{
    string dr;
    int od;
    int y;
};
bool cmp(sik a,sik b){
    if(a.y>=60||b.y>=60){
        if(a.y>b.y){
            return true;
        }
        else  if(a.y==b.y){
            if(a.od<b.od){
                return true;
            }
            return false;
        }
        return false;
    }
    return a.od<b.od;
}
vector<sik> al;
int main(){
    int n;
    sik ipt;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>ipt.dr>>ipt.y;
        ipt.od=stoi(ipt.dr);
        al.push_back(ipt);
    }
    sort(al.begin(),al.end(),cmp);
    for(int i=0;i<al.size();i++){
        cout<<al[i].dr<<endl;
    }
}

回复

0 条回复,欢迎继续交流。

正在加载回复...