首页 > 其他分享 >PAT排名汇总

PAT排名汇总

时间:2023-05-25 17:01:12浏览次数:55  
标签:输出 PAT int 汇总 return 考点 score 考生 排名


计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。

每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总的排名表。

现在就请你写一个程序自动归并各个考点的成绩并生成总排名表。

输入格式:

输入的第一行给出一个正整数N(≤100),代表考点总数。随后给出N个考点的成绩,格式为:首先一行给出正整数K(≤300),代表该考点的考生总数;随后K行,每行给出1个考生的信息,包括考号(由13位整数字组成)和得分(为[0,100]区间内的整数),中间用空格分隔。

输出格式:

首先在第一行里输出考生总数。随后输出汇总的排名表,每个考生的信息占一行,顺序为:考号、最终排名、考点编号、在该考点的排名。其中考点按输入给出的顺序从1到N编号。考生的输出须按最终排名的非递减顺序输出,获得相同分数的考生应有相同名次,并按考号的递增顺序输出。

输入样例:

2
5
1234567890001 95
1234567890005 100
1234567890003 95
1234567890002 77
1234567890004 85
4
1234567890013 65
1234567890011 25
1234567890014 100
1234567890012 85

输出样例:

9
1234567890005 1 1 1
1234567890014 1 2 1
1234567890001 3 1 2
1234567890003 3 1 2
1234567890004 5 1 4
1234567890012 5 2 2
1234567890002 7 1 5
1234567890013 8 2 3
1234567890011 9 2 4
#include <bits/stdc++.h>
using namespace std;
typedef struct Node
{
  char ID[20];
  int score, rank_s, rank_tol, pla;
}Node;
typedef Node *List;
int sco[30010];
Node node[30010];
List L[30010];
bool cmp(int a, int b)
{
    return a > b;
}
bool cmp1(List a, List b)
{
    if(a->score > b->score)
        return true;
    else if(a->score == b->score)
    {
        if(strcmp(a->ID, b->ID) < 0)
            return true;
    }
    return false;
}
int main()
{
    int N, total = 0;
    int start, pos = 1;
    start = total = 0;
    scanf("%d", &N);
    for(int i = 1; i <= N; ++i)
    {
        int num;
        scanf("%d", &num);
        total += num;
        for(int j = 1; j <= num; ++j)
        {
            scanf("%s %d", node[pos].ID, &node[pos].score);
            node[pos].pla = i;
            sco[start + j] =  node[pos].score;
            pos++;
        }
       sort(sco + start + 1, sco + total + 1, cmp);
       for(int j = 1; j <= num; ++j)
       {
           node[start + j].rank_s = find(sco + start + 1, sco + total + 1, node[start + j].score) - sco - start;
       }
       start += num;
    }
    sort(sco + 1, sco + total + 1, cmp);
    for(int i = 1; i <= total; ++i)
    {
        node[i].rank_tol = find(sco + 1, sco + total + 1, node[i].score) - sco;
        L[i] = node + i;
    }
    sort(L + 1, L + total + 1, cmp1);
    printf("%d\n", total);
    for(int i = 1; i <= total; ++i)
        printf("%s %d %d %d\n", L[i]->ID, L[i]->rank_tol, L[i]->pla, L[i]->rank_s);


}



标签:输出,PAT,int,汇总,return,考点,score,考生,排名
From: https://blog.51cto.com/u_16129621/6350107

相关文章

  • Firefox8.0.1及对应firebug1.9.0,firepath0.9.7.1.1插件下载
    firefox8.0.1链接:https://pan.baidu.com/s/1x9M6dimmvQrBee_iSeVcZg提取码:ewy8旧版本安装注意,安装前必看:firefox旧版本下载后打开为为最新版怎么办firebug1.9.0链接:https://pan.baidu.com/s/1g55zj8BjciR4U3Mn1ApqFQ提取码:zfj3firepath0.9.7.1.1链接:https://pan.baidu.com/s/......
  • Cisco Identity Services Engine (ISE) 3.2 Patch2 发布 - 思科身份服务引擎
    CiscoIdentityServicesEngine(ISE)3.2Patch2发布-思科身份服务引擎请访问原文链接:https://sysin.org/blog/cisco-ise-3/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org工作场所零信任安全的核心所在任何零信任策略的一个关键组成部分是确保所有人和所有设......
  • #Powerbi 1分钟学会,SUMMARIZE函数,分组汇总并新建表
    今天我们来学习一个新的表函数,SUMMARIZE函数是DAX中的一个函数,它可以根据一列或多列对数据进行分组,并且可以使用指定的表达式为汇总后的表添加新列,形成一张新表。一:基础语法SUMMARIZE函数的语法是:SUMMARIZE (表, 分组列1 [, 分组列2]… [, 名称, 表达式]…)其中:表,是任何......
  • 【IntelliJ IDEA】idea常用快捷键汇总
    1、查看所有快捷键:Ctrl + J2、sout System.out.println();3、forifor(inti=0;i<;i++){}4、ititwhile(iterator.hasNext()){Objectnext=iterator.next();}5、itlifor(inti=0;i<list.size();i++){Objecto=list.get(i);}6、itarfor(......
  • 《设计模式之禅》Singleton_Pattern--单例模式
    单例模式这个模式是很有意思,确实很有意思的,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一、独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?我们举个比较难复制的对象:皇帝(就是那个天子)中国的历史上很少出现两个皇帝并存的......
  • c#中用System.Diagnostics.Process.Start(Path.GetFullPath(“vlc.exe.lnk“), url);用
    vlc.exe.lnk双击这个文件,能正常打开vlc,但是用System.Diagnostics.Process.Start(Path.GetFullPath("vlc.exe.lnk"),url);没有任何反应。根据常理,不应该出现这个问题。但是现实就是这么魔幻,偏偏有这个问题。根据上面图,根据快捷方式是可以获取到vlc可执行文件的路径的,然后在网上搜索......
  • spring-boot配置文件中server.context-path不起作用的解决方案
    背景:server.context-path不起作用简单说springboot项目路径默认是ip:port进入项目,通过在application配置文件添加server.context-path属性,可自定义上下文,如ip:port/server.context-path而springboot2.0之后,上下文的配置改为了server.servlet.context-path。  如果还是不懂可......
  • c#中用System.Diagnostics.Process.Start(Path.GetFullPath(“vlc.exe.lnk“), url);用
    vlc.exe.lnk双击这个文件,能正常打开vlc,但是用System.Diagnostics.Process.Start(Path.GetFullPath("vlc.exe.lnk"),url);没有任何反应。根据常理,不应该出现这个问题。但是现实就是这么魔幻,偏偏有这个问题。根据上面图,根据快捷方式是可以获取到vlc可执行文件的路径的,然后在网上......
  • 六级作文题目汇总
    六级作文题目汇总2016上半年:议论文:现象解释livinginthevirtualworld.Trytoimaginewhatwillhappenwhenpeoplespendmoreandmoretimeinthevirtualworldinsteadofinteractingintherealworld.2016下半年:议论文:问题解决theimportanceofinnovationa......
  • maven打包时跳过TEST的方式汇总
    使用maven打包时如何跳过test,有以下几种方式针对spring项目<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.18.1</version><confi......