竞赛
考级
先输出其他的,最后输出最后一行
求求了点个赞吧!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
测试数据1会PE因为最后一行不能换行。
#include <bits/stdc++.h> using namespace std; struct stu{ string name; int id; int ans; }a[200001];ghzsjdiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii sjddddddddddddddddddg bool cmp(stdgfskjsgfjimjlgdfgffgsdfgsu aa,stu bb) { if(aa.id!=bb.id) return aa.id>bb.id; else { if(aa.ans!=bb.ans) return aa.ans<bb.ans; else return aa.name>bb.name; } } int main() { int n; cin>>n; for(int i=1;i<=n;++i) cin>>a[i].name>>a[i].id>>a[i].ans; sort(a+1,a+1+n,cmp); for(int i=1;i<=n-1;++i) { }
#include <bits/stdc++.h> using namespace std; struct stu{ string name; int id; int ans; }a[200001]; bool cmp(stu aa,stu bb) { if(aa.id!=bb.id) { return aa.id>bb.id; } else { if(aa.ans!=bb.ans) { return aa.ans<bb.ans; } else { return aa.name>bb.name; } } } int main() { int n; cin>>n; for(int i=1;i<=n;++i) { cin>>a[i].name>>a[i].id>>a[i].ans; } sort(a+1,a+1+n,cmp); for(int i=1;i<=n-1;++i) { cout<<a[i].name<<endl; } cout<<a[n].name; return 0; }
使用结构体排序 最初的时候没看到从小到大 #include <bits/stdc++.h> using namespace std; struct b{ string name; int a; int c; }z[1000000]; bool cmp(b x,b y){ string o=x.name; string p=y.name; if(x.a!=y.a){ return x.a>y.a; } if(x.c!=y.c){ return x.c<y.c; } if(o.size()>p.size()){ return o.size()>p.size(); } if(o!=p){ return o>p; } } int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>z[i].name>>z[i].a>>z[i].c; } sort(z,z+n,cmp); for(int i=0;i<n;i++){ cout<<z[i].name<<endl; } }
#include<bits/stdc++.h> using namespace std; struct xs{ int a,b; string s; }x[200001]; int cmp(xs a,xs b){ if(a.a!=b.a){ return a.a>b.a; }else if(a.b!=b.b){ return a.b<b.b; } return a.s>b.s; } int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>x[i].s>>x[i].a>>x[i].b; } sort(x,x+n,cmp); for(int i=0;i<n;i++){ cout<<x[i].s<<endl; } return 0; }
提交答案之后,这里将显示提交结果~