zoukankan      html  css  js  c++  java
  • PAT:1025. PAT Ranking (25) AC

    #include<stdio.h>
    #include<string.h>          //【warning】刚开始少了这个头文件,但是VS2010中被系统自动优化没有察觉 #include<algorithm> using namespace std; struct Student { char ID[15]; int score,final_rank,location_number,local_rank; //分数,总排名,考场号,场内排名 }STU[30010]; bool cmp(Student a, Student b) { if(a.score!=b.score) return a.score>b.score; //按分数从大到小 else return strcmp(a.ID,b.ID)<0; //按字典序从小到大 } int main() { int n,I=0; //I记录所有STU学生个数 scanf("%d",&n); for(int t=1 ; t<=n ; ++t) //n个考场 { int k; scanf("%d",&k); for(int i=0 ; i<k ; ++i) { scanf("%s %d",&STU[I+i].ID, &STU[I+i].score); //记录ID,分数 STU[I+i].location_number=t; //记录考场号 } sort(STU+I,STU+I+k,cmp); STU[I].local_rank=1; for(int i=1 ; i<k ; ++i) //记录场内排名 { if(STU[I+i].score==STU[I+i-1].score) STU[I+i].local_rank=STU[I+i-1].local_rank; //和前一个同学名次相同 else STU[I+i].local_rank=i+1; //否则排名为i+1 } I+=k; //到下一个考场,I从k个考生之后开始算 } sort(STU,STU+I,cmp); STU[0].final_rank=1; for(int i=1 ; i<I ; ++i) //总排名 { if(STU[i].score==STU[i-1].score) STU[i].final_rank=STU[i-1].final_rank; //和前一个同学名次相同 else STU[i].final_rank=i+1; //否则排名为i+1 } printf("%d ",I); for(int i=0 ; i<I ; ++i) printf("%s %d %d %d ",STU[i].ID,STU[i].final_rank,STU[i].location_number,STU[i].local_rank); return 0; }
  • 相关阅读:
    shell(计算机壳层)(二)
    Linux Bash Shell快速入门 (三)
    Lua
    bash
    Perl
    脚本语言
    JSP中获取客户端或浏览端信息的方式
    linux环境变量
    逆向思维
    【maven】IDEA:存在jar包,pom.xml文件没报错,但是Maven-Project-Dependencies有红线报错
  • 原文地址:https://www.cnblogs.com/Evence/p/4306983.html
Copyright © 2011-2022 走看看