2 solutions

  • 2
    @ 2024-12-29 15:59:22
    #include<bits/stdc++.h>
    using namespace std;
    const int N=310;
    struct Stu{
    	int total,yuwen,shuxue,yingyu,id;
    };
    Stu s[N];
    bool cmp(Stu a,Stu b)
    {
    	if(a.total>b.total) return 1;
    	if(a.total==b.total&&a.yuwen>b.yuwen) return 1;
    	if(a.total==b.total&&a.yuwen==b.yuwen&&a.id<b.id) return 1;
    	return 0;
    }
    int main()
    {
    	int n;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>s[i].yuwen>>s[i].shuxue>>s[i].yingyu;
    		s[i].total=s[i].yingyu+s[i].yuwen+s[i].shuxue;
    		s[i].id=i;
    	}
    	sort(s+1,s+1+n,cmp);
    	for(int i=1;i<=5;i++)
    	{
    		cout<<s[i].id<<" "<<s[i].total<<endl;
    	}
    	return 0;
    }
    • 0
      @ 2024-8-10 11:58:51
      #include<bits/stdc++.h>
      using namespace std;
      const int N=310;
      struct Stu{
          int total,yuwen,shuxue,yingyu,id;
      };
      Stu s[N];
      bool cmp(Stu a,Stu b)
      {
          if(a.total>b.total) return 1;
          if(a.total==b.total&&a.yuwen>b.yuwen) return 1;
          if(a.total==b.total&&a.yuwen==b.yuwen&&a.id<b.id) return 1;
          return 0;
      }
      int main()
      {
          int n;
          cin>>n;
          for(int i=1;i<=n;i++)
          {
              cin>>s[i].yuwen>>s[i].shuxue>>s[i].yingyu;
              s[i].total=s[i].yingyu+s[i].shuxue+s[i].yuwen;
              s[i].id=i;
          }
          sort(s+1,s+1+n,cmp);
          for(int i=1;i<=5;i++)
          {
              cout<<s[i].id<<" "<<s[i].total<<endl;
          }
          return 0;
      }
      
      //包对!!!
      
      • 1

      Information

      ID
      945
      Time
      1000ms
      Memory
      256MiB
      Difficulty
      3
      Tags
      (None)
      # Submissions
      106
      Accepted
      22
      Uploaded By