8 solutions
-
4
#include<bits/stdc++.h> using namespace std; int n; struct exam{ int no; int ch,ma,en; int sum; }; bool cmp(exam a,exam b){//排序不用讲吧? if(a.sum==b.sum){ if(a.ch==b.ch) return a.no<b.no; return a.ch>b.ch; } return a.sum>b.sum; } exam a[305]; int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>a[i].ch>>a[i].ma>>a[i].en; a[i].sum=a[i].ch+a[i].ma+a[i].en; a[i].no=i+1;//注意no是i+1 } sort(a,a+n,cmp); for(int i=0;i<5;i++){ cout<<a[i].no<<' '<<a[i].sum<<endl; } return 0;//不必多言 }
不知道为什么总是90accept
-
1
#include<bits/stdc++.h> using namespace std; int n; struct exam { int num;//编号 int chinese,math,english;//语数英 int sum;//总分 }; exam a[305]; bool cmp(exam a,exam b)//sort { if(a.sum>b.sum)return true;//看总分 if(a.sum<b.sum)return false; //总分相等 if(a.chinese>b.chinese)return true;//看语文分 if(a.chinese<b.chinese)return false; //语文分相等 if(a.num<b.num)return true;//看编号 if(a.num>b.num)return false; return 1; // if(a.sum==b.sum)//总分相等 // { // if(a.chinese==b.chinese)//语文分相等 // { // return a.num<b.num;//看编号 // } // return a.chinese>b.chinese;//看语文分 // } // return a.sum>b.sum;//看总分 } int main() { cin >> n;//输入 for(int i = 0;i < n;i++) { cin >> a[i].chinese >> a[i].math >> a[i].english;//输入 a[i].sum = a[i].chinese + a[i].math + a[i].english;//计算总分 a[i].num = i+1;//从一开始 } sort(a,a+n,cmp);//排序 for(int i = 0;i < 5;i++) { cout << a[i].num << " " << a[i].sum << endl; } return 0;//完结撒花 }
-
1
#include <bits/stdc++.h> using namespace std; int a[333],b[333],c[333],d[1][333]; int m = 0; void bubble_sort(int n) { bool flat = true; while(flat) { flat = false; for(int i = 0;i < n - 1;i++) { if(d[1][i] == d[1][i + 1]) { if(a[i] < a[i + 1]) { swap(d[1][i],d[1][i + 1]); swap(d[0][i],d[0][i + 1]); swap(a[i],a[i + 1]); } else if(a[i] == a[i + 1]) { if(d[0][i] > d[0][i + 1]) { swap(d[1][i],d[1][i + 1]); swap(d[0][i],d[0][i + 1]); swap(a[i],a[i + 1]); } } } if(d[1][i] < d[1][i + 1]) { flat = true; swap(d[1][i],d[1][i + 1]); swap(d[0][i],d[0][i + 1]); swap(a[i],a[i + 1]); } } } } int main() { int n; cin >> n; for(int i = 0;i < n;i++) { cin >> a[i] >> b[i] >> c[i]; d[1][i] = a[i] + b[i] + c[i]; d[0][i] = i + 1; } bubble_sort(n); if(n < 5) { for(int i = 0;i < n;i++) { cout << d[0][i] << " " << d[1][i] << endl; } } else { for(int i = 0;i < 5;i++) { cout << d[0][i] << " " << d[1][i] << endl; } } return 0; }
-
1
#include <bits/stdc++.h> using namespace std; struct exam{ int no; int ch,ma,en; int sum; }a[333]; bool cmp(exam a,exam b){ if(a.sum==b.sum){ if(a.ch==b.ch) return a.no<b.no; return a.ch>b.ch; } return a.sum>b.sum; } int main(){ int n;cin>>n; for(int i=0;i<n;i++){ cin>>a[i].ch>>a[i].ma>>a[i].en; a[i].sum=a[i].ch+a[i].ma+a[i].en,a[i].no=i+1; } sort(a,a+n,cmp); for(int i=0;i<5;i++) cout<<a[i].no<<" "<<a[i].sum<<endl; return 0; }
-
1
#include<bits/stdc++.h> using namespace std; struct stu{ int ch,ma,en,to,no; }; stu a[310]; int n; bool cmp(stu x,stu y){ if(x.toy.to&&x.ch!=y.ch){ return x.ch>y.ch; }else if(x.toy.to&&x.ch==y.ch){ return x.no<y.no; } return x.to>y.to; } int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>a[i].ch>>a[i].ma>>a[i].en; a[i].to=a[i].ch+a[i].ma+a[i].en; a[i].no=i+1; } sort(a,a+n,cmp); for(int i=0;i<5;i++){ cout<<a[i].no<<" "<<a[i].to<<endl; } return 0; }
-
1
#include <bits/stdc++.h> using namespace std; int n,idx; struct st{ int cn,m,eng,id,sum; }; bool cmp(st b,st c){ if (b.sum == c.sum){ if (b.cn == c.cn){ return b.id < c.id; } return b.cn > c.cn; } return b.sum > c.sum; } int main(int argc, char **argv){ st a[300]; cin >> n; for (int i = 0;i < n;i++){ idx++; cin >> a[i].cn >> a[i].m >> a[i].eng; a[i].id = idx; a[i].sum = a[i].cn + a[i].m + a[i].eng; } sort(a,a + n,cmp); for (int i = 0;i < 5;i++){ printf("%d %d\n",a[i].id,a[i].sum); } return 0; }
这示例又错了吧
-
0
using namespace std; struct jsj{ int zf; int yw; int sh; }s[301]; bool f(jsj x,jsj y){ if(x.zf!=y.zf){ return x.zf<y.zf; } else{ if(x.yw!=y.yw){ return x.yw<y.yw; } else{ return x.sh>y.sh; } } } int main(){ int n,a,b,c; cin>>n; for(int i=1;i<=n;i++){ cin>>a; s[i].yw=a; cin>>b>>c; s[i].zf=a+b+c; s[i].sh=i; } sort(s+1,s+n+1,f); if(n>=5){ for(int i=n;i>n-4;i--){ cout<<s[i].sh<<" "<<s[i].zf<<endl; } cout<<s[n-4].sh<<" "<<s[n-4].zf; } else{ for(int i=n;i>1;i--){ cout<<s[i].sh<<" "<<s[i].zf<<endl; } cout<<s[1].sh<<" "<<s[1].zf; }
}
-
-2
#include<iostream> #include<algorithm> using namespace std; struct student{ short num; short score; short Chinese; short Math; short English; }; bool px(student a,student b){ if(a.score<b.score)return 0; if(a.score>b.score)return 1; if(a.Chinese>b.Chinese)return 1; if(a.Chinese<b.Chinese)return 0; if(a.num>b.num)return 0; return 1; } int main(){ int n; cin >>n; student a[n]; for(int i=0;i<n;i++){ cin >>a[i].Chinese >>a[i].Math >>a[i].English; a[i].num=i+1; a[i].score =a[i].Chinese +a[i].Math +a[i].English; } sort(a,a+n,px); for(int i=0;i<5;i++){ cout <<a[i].num <<" " <<a[i].score <<"\n"; } }
- 1
Information
- ID
- 665
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 6
- Tags
- # Submissions
- 175
- Accepted
- 51
- Uploaded By