8 solutions

  • 4
    @ 2023-12-2 15:30:46
    #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
      @ 2024-11-13 16:53:17
      #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
        @ 2024-1-21 11:55:20
        #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
          @ 2023-12-25 20:37:56
          #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
            @ 2023-11-19 10:21:59

            #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
              @ 2023-10-12 13:09:48
              #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
                @ 2024-2-27 13:48:34
                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
                  @ 2023-11-16 14:02:07
                  #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