10 条题解

  • 1
    @ 2026-4-29 19:34:33
    #include <iostream>
    #include <algorithm>
    using namespace std;
    struct Student{
        short chinese=0,math=0,english=0,number=0;
        int sum(){
            return chinese+math+english;
        };
    };
    bool cmp(Student a,Student b){
        if(a.sum()>b.sum()) return true;
        else if(a.sum()==b.sum()&&a.chinese>b.chinese) return true;
        else if(a.sum()==b.sum()&&a.chinese==b.chinese&&a.number<b.number) return true;
        else return false;
    }
    
    Student mxx[301];
    int main(){
        ios::sync_with_stdio(false);
        int n;
        cin >> n;
        for (int i = 1;i<=n;i++){
            cin >> mxx[i].chinese >> mxx[i].math >> mxx[i].english;
            mxx[i].number = i;
        }
        sort(mxx+1,mxx+n+1,cmp);
        for (int i = 1;i<=5;i++){
            cout << mxx[i].number << " " <<  mxx[i].sum()  /*mxx[i].sum()*/ << endl;
        }
    }
    • 1
      @ 2026-2-27 14:42:22
      #include<bits/stdc++.h>
      using namespace std;
      const int in=0x3f3f3f3f;
      const int kl=1e5+10;
      struct f
      {
      	int yu,shu,yi;
      	int sum;
      	int id;
      }a[kl];
      bool cmp(f a1,f a2)
      {
      	if(a1.sum==a2.sum)
      	{
      		if(a1.yu==a2.yu)
      			return a1.id<a2.id;
      		return a1.yu>a2.yu;
      	}	
      	return a1.sum>a2.sum;
      }
      int n;
      int main()
      {
      	ios::sync_with_stdio(0);
      	cin.tie(0);
      	cin>>n;
      	for(int i=1;i<=n;i++)
      	{
      		cin>>a[i].yu>>a[i].shu>>a[i].yi;
      		a[i].sum=a[i].yu+a[i].shu+a[i].yi;
      		a[i].id=i;
      	}
      	sort(a+1,a+1+n,cmp);
      	for(int i=1;i<=5;i++)cout<<a[i].id<<" "<<a[i].sum<<endl;
      	return 0;
      }
      
      • 0
        @ 2024-11-24 12:08:02

        #include<bits/stdc++.h> using namespace std; struct student{ int id,yw,sx,yy,sum; }a[505]; int cmp(student a,student b){ if(a.sum>b.sum) return 1; else if(a.sumb.sum&&a.yw>b.yw) return 1; else if(a.ywb.yw&&a.sum==b.sum&&a.id<b.id) return 1; else return 0; } int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i].yw>>a[i].sx>>a[i].yy; a[i].sum=a[i].yw+a[i].sx+a[i].yy; a[i].id=i; } sort(a+1,a+n+1,cmp); for(int i=1;i<=5;i++)cout<<a[i].id<<" "<<a[i].sum<<endl; return 0; }

        • 0
          @ 2024-11-23 18:36:33
          #include<bits/stdc++.h>
          using namespace std;
          struct student{
          	int id,yw,sx,yy,sum;
          }a[505];
          int cmp (student a,student b){
          	if(a.sum>b.sum) return 1;
          	else if(a.sum==b.sum&&a.yw>b.yw) return 1;
          	else if(a.yw==b.yw&&a.sum==b.sum&&a.id<b.id) return 1;
          	else return 0;
          }
          int main(){
          	int n;
          	cin>>n;
          	for(int i=1;i<=n;i++){
          		cin>>a[i].yw>>a[i].sx>>a[i].yy;
          		a[i].sum=a[i].yw+a[i].sx+a[i].yy;
          		a[i].id=i;
          	}
          	sort(a+1,a+n+1,cmp);
          	for(int i=1;i<=5;i++){
          		cout<<a[i].id<<" "<<a[i].sum<<endl;
          	}
          	for(int i=1;i<=3;i++)
          		break;
          	return 0;
          }
          
          • 0
            @ 2024-3-17 18:38:27

            简约代码

            #include <iostream>//点个赞拿走 
            #include <algorithm>
            using namespace std;
            const int N = 1e5 + 10;
            int n,k;
            struct ikun{
            	int id , yu , shu , yin , to;
            }a[N];
            bool cmp(ikun a1,ikun a2){//想抄P1363的同学 。 
            	if (a1.to == a2.to)//记得删掉数学和英语。 
            	{
            		if (a1.yu == a2.yu)
            		{	
            			return a1.id < a2.id;
            		}
            		return a1.yu > a2.yu;
            	}
            	return a1.to > a2.to;
            } 
            int main(){
            	cin >> n;
            	for (int i = 1;i <= n;i++) 
            	{
            		cin >> a[i].yu >> a[i].shu >> a[i].yin;
            		a[i].to = a[i].yu + a[i].shu + a[i].yin;//总和 
            		a[i].id = i;
            		
            	}
            	sort(a+1,a+n+1,cmp);//自定义排序。 
            	for (int i = 1;i <= 5;i++)
            		cout << a[i].id << " " << a[i].to << endl;
            }
            
            • -1
              @ 2024-11-23 18:42:51

              #include <stdio.h> #include #include <bits/stdc++.h> using namespace std; struct student{ int num,yw,sx,yy,sum; string name; }a[10000]; int cmp(student a,student b) { if(a.sum>b.sum) { return 1; } else if(a.sumb.sum && a.yw>b.yw) { return 1; } else if(a.sumb.sum && a.yw==b.yw && a.num<b.num) { return 1; } else{ return 0; } } int main() { int n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].yw>>a[i].sx>>a[i].yy; a[i].sum=a[i].yw+a[i].sx+a[i].yy; a[i].num=i;

              }
              sort(a+1,a+n+1,cmp);
              for(int i=1;i<=5;i++)
              {
              	cout <<a[i].num;
              	cout << " "<<a[i].sum<<endl;
              }
              

              }

              • -1
                @ 2024-11-3 14:14:59
                /*
                int      %o/%lo 8 %d/%i/%ld/%li 10 %x/%lx 16
                longlong %lld
                float    %f/%e
                double   %lf/%le
                char     %c
                char[]   %s
                'a'=97
                'z'=122
                'A'=65
                'Z'=90
                '0'=48
                '9'=57
                */
                #include <iostream>
                #include <iomanip>
                #include <cmath>
                #include <cstdio>
                #include <cstring>
                #include <algorithm>
                #include <ctime>
                #include <limits>
                #include <assert.h>
                #include <stdlib.h>
                using namespace std;
                #define LL long long
                #define ull unsigned long long
                const int N=1e5+10;
                const int INF=0x3f3f3f3f;
                const double pi=3.1416;
                int n;
                struct sb{
                	int c,m,e,t,id;
                }a[N];
                bool cmp(sb a1,sb a2){
                	if(a1.t==a2.t){
                		if(a1.c==a2.c){
                			return a1.id<a2.id;
                		}
                		return a1.c>a2.c;
                	}
                	return a1.t>a2.t;
                }
                int main(){
                	cin>>n;
                	for(int i=1;i<=n;i++){
                		cin>>a[i].c>>a[i].m>>a[i].e;
                		a[i].t=a[i].c+a[i].m+a[i].e;
                		a[i].id=i;
                	}
                	sort(a+1,a+n+1,cmp);
                	for(int i=1;i<=5;i++){
                		cout<<a[i].id<<" "<<a[i].t<<endl;
                	}
                return 0;
                }
                
                • -1
                  @ 2024-3-17 20:27:49
                  #include<bits/stdc++.h>
                  using namespace std;
                  const int N = 1e5 + 10;
                  int n,k;
                  struct stu
                  {
                  	int id;
                  	int yw;
                  	int sx;
                  	int yy;
                  	int total;
                  }a[N];
                  bool cmp(stu a1,stu a2)
                  {
                  	if(a1.total == a2.total)
                  	{
                  	    if(a1.yw == a2.yw)
                  	    {
                  	       a1.id < a2.id;
                  	    }
                  	    return a1.yw > a2.yw;
                  	}
                  	return a1.total > a2.total;
                  }
                  int main(){
                      cin >> n >> k;
                      for(int i = 1;i <= n;i++)
                      {
                          cin >> a[i].id >> a[i].yw >> a[i].sx >> a[i].yy;
                          a[i].total = a[i].yw + a[i].sx + a[i].yy;
                          a[i].id = i;
                      }
                      sort(a + 1,a + n + 1,cmp);
                      for (int i = 1;i <= 5;i++)
                          cout << a[k].id << " " << a[k].yw;
                      return 0;
                  }
                  
                  • -1
                    @ 2023-8-19 17:23:03
                    #include <iostream>
                    #include <algorithm>
                    using namespace std;
                    int n;
                    struct stu{
                    	int chinese,maths,english;
                    	int tot,id;
                    };
                    stu a[310];
                    bool cmp(stu A,stu B){
                    	if(A.tot!=B.tot)return A.tot>B.tot;
                    	else if(A.chinese!=B.chinese)return A.chinese>B.chinese;
                    	else return A.id<B.id;
                    }
                    int main(){
                    	cin>>n;
                    	for(int i=1;i<=n;i++){
                    		cin>>a[i].chinese>>a[i].maths>>a[i].english;
                    		a[i].tot=a[i].chinese+a[i].maths+a[i].english;
                    		a[i].id=i;
                    	}
                    	sort(a+1,a+n+1,cmp);
                    	for(int i=1;i<=5;i++){
                    		cout<<a[i].id<<" "<<a[i].tot<<endl;
                    	}
                    }
                    
                    • -1
                      @ 2023-6-3 8:19:09

                      思路分析: 首先,读入n和每个学生的三门成绩,计算每个学生的总分,将学生信息存储在一个结构体数组中,然后按照总分、语文成绩、学号的顺序进行排序,最后输出前五名学生的学号和总分即可。

                      • 1

                      信息

                      ID
                      691
                      时间
                      1000ms
                      内存
                      256MiB
                      难度
                      6
                      标签
                      递交数
                      659
                      已通过
                      224
                      上传者