zoukankan      html  css  js  c++  java
  • XidianOJ 1017 Codeforce上的rating

    题目描述

    题目描述:codeforces上每个注册的人都有一个rating,详见http://codeforces.com/ratings,
    比如WJMZBMR的rating为2841。给你N个人的ID和rating,现在需要你把他们按rating从大到小进行排序,rating相同ID字典序较小的靠前。(比如 tourist的字典序就小于WJMZBMR)
    PS:可以把字典序的大小当成两个字符串比较的结果。

    输入

    输入数据有多组,每组数据第一行是整数N (N <= 10000),表示需要排序的人数, 
    然后N行,每一行一个ID(字符串),一个整数rating。(ID长度不超过20, 每个人的ID都不同)。
    如果N=0, 则表示输入结束,该组数据不做任何处理。不超过10组数据, 最后一组数据后面是N=0.

    输出

    对于每组输出数据, 输出n行, 每一行分别是ID 和rating。 中间用一个空格隔开。

    --正文
    使用C++自带的sort可以省不少事,只需要写好Compare函数即可
    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    struct UserNode {
        char ID[20];
        int Rate;
    };
    
    bool cmp(struct UserNode a,struct UserNode b){
        if (a.Rate > b.Rate) return true;
        if (a.Rate < b.Rate) return false;
        else {
            return (strcmp(b.ID,a.ID) > 0); 
        }
    }
    
    
    struct UserNode User[10001]; 
    int n;
    int main(){
        while (scanf("%d",&n) != EOF){
            if (n == 0) break;
            int i,j;
            for (i=0;i<n;i++){
                scanf("%s %d",User[i].ID,&User[i].Rate);
            }
            sort(User,User+n,cmp);
            for (i=0;i<n;i++){
                printf("%s %d
    ",User[i].ID,User[i].Rate);
            }
        }
    }
  • 相关阅读:
    MySQL存储树形数据优化技笔记
    收集18个高大上的浏览器小技巧
    收集18个高大上的浏览器小技巧
    盘点15个不起眼但非常强大的 Vim 命令
    盘点15个不起眼但非常强大的 Vim 命令
    为什么开发者应该摒弃敏捷?(转)
    为什么开发者应该摒弃敏捷?(转)
    MySQL 中事务、事务隔离级别详解
    pandas数据对齐
    Bokeh绘图
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6084373.html
Copyright © 2011-2022 走看看