1、如果一个单元为0,表示没做过这题,不计入成绩

2、如果一个单位为负数,表示做错了这题,不计入成绩

所以只要一个单元为正数(不论是否有括号)都说明做出了这一题,计入成绩

将名字和成绩都当作字符串读入,方便处理含有括号的情况

字符串读入后检查末尾是否为')'即可分开判断有无括号的情况(如果有括号,成绩一定存在)

为了方便可以用 结构体/自定义函数/排序自定义compare函数 来实现

当然,不使用结构体可以用普通数组代替

不使用algorithm库的sort可以用冒泡选择这两种基本排序做(不会存在卡时间的情况)

做法1:C/无结构体/无sort

#include<stdio.h>
#include<string.h>
int main(){
int i,u,n,m,tm[],ac[],poi=,id,dt;
char nm[][],cd[],k;
scanf("%d%d",&n,&m);
while(scanf("%s",nm[poi])!=EOF){
tm[poi]=;
ac[poi]=;
for(i=;i<n;i++){
scanf("%d",&dt);
if(dt>){
ac[poi]++;
tm[poi]+=dt;
scanf("%c",&k);
if(k=='('){
scanf("%d%*c",&dt);
tm[poi]+=dt*m;
}
}
}
poi++;
}
for(i=;i<poi;i++)//排序
for(u=poi-;u>i;u--)
if(ac[u]>ac[u-]||ac[u]==ac[u-]&&tm[u]<tm[u-]||ac[u]==ac[u-]&&tm[u]==tm[u-]&&strcmp(nm[u-],nm[u])>){
id=ac[u];
ac[u]=ac[u-];
ac[u-]=id;
id=tm[u];
tm[u]=tm[u-];
tm[u-]=id;
strcpy(cd,nm[u]);
strcpy(nm[u],nm[u-]);
strcpy(nm[u-],cd);
}
for(i=;i<poi;i++)
printf("%-10s %2d %4d\n",nm[i],ac[i],tm[i]); return ;
}

做法2:C++/结构体/sort

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct node{
char name[];
int sum,ac;
}stu[];
int m;
char dat[];
int getDigit(int l,int r){
int i=l,res=,f=;
if(dat[i]=='-'){
f=-;
i++;
}
for(;i<r;i++)
res=res*+dat[i]-'';
return f*res;
}
int getDScore(int len){
int i;
for(i=;i<len;i++)
if(dat[i]=='(')
break;
return getDigit(,i)+m*getDigit(i+,len-);
}
bool cmp(node a,node b){
if(a.ac!=b.ac)
return a.ac>b.ac;
if(a.sum!=b.sum)
return a.sum<b.sum;
return strcmp(a.name,b.name)==-;
}
int main(){
int n,i,t=,len,d;
scanf("%d%d",&n,&m);
while(scanf("%s",stu[t].name)!=EOF){
for(i=;i<=n;i++){
scanf("%s",dat);
len=strlen(dat);
if(dat[len-]!=')'){
d=getDigit(,len);
if(d>){
stu[t].sum+=d;
stu[t].ac++;
}
}
else{
stu[t].sum+=getDScore(len);
stu[t].ac++;
}
}
t++;
}
sort(stu,stu+t,cmp);
for(i=;i<t;i++)
printf("%-10s %2d %4d\n",stu[i].name,stu[i].ac,stu[i].sum); return ;
}

ZJNU 1164 - 考试排名——中级的更多相关文章

  1. HDU——2093考试排名(string类及其函数的运用以及istringstream)

    考试排名 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. HDOJ(HDU) 2093 考试排名(Arrays.sort排序、类的应用)

    Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么"AC",要么错 ...

  3. 5N - 考试排名

    C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么“AC”,要么错误,不管怎样错法,总是给你记上一笔,表明你曾经有过一次错误提 ...

  4. B - 考试排名

    C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点.它的功能是怎么实现的呢? 我们做好了题目的解答,提交之后,要么"AC",要么错误,不管怎样错法,总是给你记上一笔,表明 ...

  5. HDU 2093 考试排名 模拟题

    解题报告: 题目描述:写一个程序给一个编程考试C++实时提交系统排名,给你的数据是题目的总数,每次错误提交罚的时间分,每位用户的姓名,然后是输入用户每题的完成情况,有一下几种情况,第一,输入只有一个正 ...

  6. 题解报告:hdu 2093 考试排名

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2093 Problem Description C++编程考试使用的实时提交系统,具有即时获得成绩排名的 ...

  7. HD-ACM算法专攻系列(16)——考试排名

    问题描述: 源码: 主要要注意输出格式. #include"iostream" #include"iomanip" #include"algorith ...

  8. ZJNU 1531 - 丢手绢--中级

    可以将相同的人数分块存在数组gp中先 例如RRGGGRBBBBRR 则gp[1~5]={2,3,1,4,2} 首先可以知道,如果要让没有相邻的相同,只需要每个gp[i]/2向下取整即可得出最少需要改变 ...

  9. ZJNU 1160 - 不要62——中级

    取模判断,数组模拟 /* Written By StelaYuri */ #include<stdio.h> ]; int main(){ int n,m,i,s,t; ;i<;i+ ...

随机推荐

  1. VMware虚拟机黑屏

    引用自:VMware吧 近期很多朋友遇到了VMware Workstation 14开启或新建虚拟机后黑屏的现象,无法关机,软件也无法关闭 用任务管理器结束VMware后这个VMX进程也关不了 解决办 ...

  2. CMD手动打jar包

    代码: jar -cvfM "jarpage.jar" @fileslist.txt 解析: 将文档(fileslist.txt)中所有路径对应文件打成jar包,取名为:jarpa ...

  3. Profiling Top Kagglers: Bestfitting, Currently #1 in the World

    We have a new #1 on our leaderboard – a competitor who surprisingly joined the platform just two yea ...

  4. 【golang】golang的一些知识要点

    特殊常量iota: 1.iota的值在遇到const关键字时将被重置为0 2.const中每新增一行常量声明将使iota计数一次,也就是自动加一. 3.iota只能在常量定义中使用. iota常见使用 ...

  5. BZOJ:2244: [SDOI2011]拦截导弹

    问题: printf("%.5f ",0):为什么错了? 注意: 初始值很重要 题解: 三维偏序问题: 记录从前往后最长上升子序列长度pref,条数preg 从后往前suff,su ...

  6. 使用DOM4J生成XML文档

    package xml; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; imp ...

  7. Nginx负载均衡(转发)

    http://www.cnblogs.com/jalja/p/6117881.html 一.反向代理 正向代理: 客户端要获取的资源就在服务器上,客户端请求的资源路径就是最终响应资源的服务器路径,这就 ...

  8. __getattr__在python2.x与python3.x中的区别及其对属性截取与代理类的影响

    python2.x中的新类型类(New-style class)与python3.x的类一致,均继承object类,而不继承object的类称为经典类(classic class),而对于这两种类,一 ...

  9. Sqlserver 增删改查----删

    --我们就以院系,班级,学生来举例. create TABLE [dbo].YuanXi ( Id ,) NOT NULL,--学校id 自增量 YuanXiName varchar() null, ...

  10. impdp导入.dmp到oracle

    1.创建表空间 create tablespace CCGRP_PRO --表空间名 datafile 'D:\oracleData\test.dbf' --物理文件 表空间数据文件存放路径size ...