zoukankan      html  css  js  c++  java
  • 2018WFU校赛B题

    我们在ACM的题目中已经了解了什么是ACM了,ACM还是很残酷的了(ಥ _ ಥ),那么现在你就要解决一个ACM最简单的题了,简单到省赛和区域赛都不会出这种简单的题。ls很强,即使每年都在ACM这个大坑里,但是他依旧关心自己的排名。但是排名规则真的很令人烦恼,因为它是按平均分排的并且他们学习的科目数量是不一定的。所以你的任务就来了,ls的班里有n名同学,每个同学有3门课程,现在你要根据他们的成绩总和从大到小排名如果成绩相同则按他们名字的字典序(字典序当然就是字典的顺序啦)排名。


    Input

    第1行:一个数n,表示ls所在班里的学生的数量(2 <= N <= 100)第2 - N+1行,第一个数为第i个同学的课程的数量,接下来3个数对应3门课程的成绩(0<=m[i]<=100),接下来为一个字符串s表示第i个同学的名字(字符串的长度<=30且只是字母保证不会出现相同的名字)。


    Output

    输出他们排名后的结果。


    Sample Input 1
    3
    100 100 100 ls
    99 99 100 kt
    99 100 99 ksgggggggggggggg


    Sample Output 1
    ls 300
    ksgggggggggggggg 298
    kt 298

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 100+5;
    struct Node{
    	int sum;
    	string s;
    }node[maxn];
    bool cmp(Node x, Node y)
    {
    	if(x.sum == y.sum)
    		return x.s < y.s;
    	else
    		return x.sum > y.sum;
    }
    int main()
    {
    	int n;
    	cin >> n;
    	for(int i = 0; i < n; i++) {
    		int a, b, c;
    		string ch; 
    		cin >> a >> b >> c >> ch;
    		node[i].sum = a + b + c;
    		node[i].s = ch;
    	}
    	sort(node, node+n, cmp);
    	for(int i = 0; i < n; i++)
    		cout << node[i].s << " " << node[i].sum << endl; 
    	return 0; 
    }
    

      

  • 相关阅读:
    查看JAVA占用CPU高的线程日志
    行为面试法(STAR)
    下载mysql document
    win10 子系统ubuntu中文乱码
    java 排序
    进制
    开始转型学习java
    java Collections工具类
    java Map实例
    java Map
  • 原文地址:https://www.cnblogs.com/clb123/p/10145156.html
Copyright © 2011-2022 走看看