技术标签: HDU
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 19617 Accepted Submission(s): 6788
Problem Description
C++编程考试使用的实时提交系统,具有即时获得成绩排名的特点。它的功能是怎么实现的呢?
我们做好了题目的解答,提交之后,要么“AC”,要么错误,不管怎样错法,总是给你记上一笔,表明你曾经有过一次错误提交,因而当你一旦提交该题“AC”后,就要与你算一算帐了,总共该题错误提交了几回。虽然你在题数上,大步地跃上了一个台阶,但是在耗时上要摊上你共花去的时间。特别是,曾经有过的错误提交,每次都要摊上一定的单位时间分。这样一来,你在做出的题数上,可能领先别人很多,但是,在做出同样题数的人群中,你可能会在耗时上处于排名的劣势。
例如:某次考试一共8题(A,B,C,D,E,F,G,H),每个人做的题都在对应的题号下有个数量标记,负数表示该学生在该题上有过的错误提交次数,但到现在还没有AC,正数表示AC所耗的时间,如果正数a跟上一对括号,里面有个整数b,那就表示该学生提交该题AC了,耗去了时间a,同时,曾经错误提交了b次,因此对于下述输入数据:
若每次错误提交的罚分为20分,则其排名从高到低应该是这样的:
Josephus 5 376
John 4 284
Alice 4 352
Smith 3 167
Bob 2 325
Bush 0 0
Input
输入数据的第一行是考试题数n(1≤n≤12)以及单位罚分数m(10≤m≤20),每行数据描述一个学生的用户名(不多于10个字符的字串)以及对所有n道题的答题现状,其描述采用问题描述中的数量标记的格式,见上面的表格,提交次数总是小于100,AC所耗时间总是小于1000。
Output
将这些学生的考试现状,输出一个实时排名。实时排名显然先按AC题数的多少排,多的在前,再按时间分的多少排,少的在前,如果凑巧前两者都相等,则按名字的字典序排,小的在前。每个学生占一行,输出名字(10个字符宽),做出的题数(2个字符宽,右对齐)和时间分(4个字符宽,右对齐)。名字、题数和时间分相互之间有一个空格。
虽然是水题,但还是考验了一下字符处理能力和优先级定义能力的,最终结果需要重定向文件读入才能看。
#include<iostream>
#include<sstream>
#include<cstdlib>
#include<cmath>
#include<cctype>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<map>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<list>
#define mod 998244353
#define Max 0x3f3f3f3f
#define Min 0xc0c0c0c0
#define mst(a) memset(a,0,sizeof(a))
#define f(i,a,b) for(int i=a;i<b;i++)
using namespace std;
typedef long long ll;
const int maxn = 1e6 + 5;
int indegree[1005];
struct Node{
char name[15];
int solve, times;
}G[1005];
bool cmp(Node a, Node b){
if(a.solve == b.solve){
if(a.times == b.times){
return strcmp(a.name, b.name) < 0;
}
return a.times < b.times;
}
return a.solve > b.solve;
}
int main(){
//ios::sync_with_stdio(false);
int n, m;
int index = 0;
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
scanf("%d%d", &n, &m);
while(scanf("%s", G[index].name) != EOF){
for(int i = 0; i < n; i++){
int v;
scanf("%d", &v);
if(v > 0){
G[index].times += v;
G[index].solve++;
char ch = getchar();
if(ch == '('){
scanf("%d", &v);
G[index].times += v * m;
getchar();
}
}
}
index++;
}
sort(G, G + index, cmp);
for(int i = 0; i < index; i++){
printf("%-10s %2d %4d\n", G[i].name, G[i].solve, G[i].times);
}
//system("pause");
return 0;
}
在AndroidStudio上打开一个月之前的项目,结果到处报错,但是运行没有问题,查资料后发现是build缓存的问题,按照网上所说清空build缓存之后,项目不在报错了。步骤:1.打开AS之后点击File找到下面的Invalidate Caches/Restart2.点击Invalidate Caches/Restart会弹出来一个
上次看了CSDN的图文科,保存了地址,怎么现在打不开了?
实验五 MSF基础应用实验内容本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成: 1.一个主动攻击实践,ms08_067(成功) 2. 一个针对浏览器的攻击,ms11_050(成功) 3. 一个针对客户端的攻击,Adobe(成功) 4. 成功应用任何一个辅助模块,scanner/ssh/ssh_vers...
【无线科普】802.11n 中HT20 HT40的区别和信道划分及plus,minus含义802.11n有两种频宽模式:HT(High Throughput)20和HT40。HT20是出于兼容性考虑:比如,一个区域内存在802.11b/g信号,那么为了尽量减少对它们的干扰,需要设定为HT20,以减少频带的重叠。HT40是出于高性能考虑:HT40将两个相邻的20...
1.首先当然是要安装ssh,具体怎么安装参照网上其他博客2.登录工作站ssh -X [email protected] 其中,-X是指需要使用工作站GUI的意思,hansry指的是你工作站的用户名,10.23...指的是工作站的地址,可通过ifconfig命令查看3.将文件从本地拷贝到工作站scp -r /home/hansry/Code/SLAM/image_match
简单使用建议在看这边博文前,先看下这篇:Fragment之设计思路先来看看Fragment的简单使用,然后再跟下去: SimpleFragment fragment = new SimpleFragment(); FragmentManager manager = getSupportFragmentManager(); FragmentTransaction tran...
方式一:第一步:打开notepad的插件管理器 第二步:找到HEX-Editor,打钩,安装 第三步:重启notepad,打开要查看的文件,插件——&gt;HEX-Editor——&gt;View in HEX。这时我们就可以使用notepad查看文本文件的16进制编码了 补充:打开notepad的安装目录,在plugins子文件中多了一个HEX-Editor.dll文件,这个文件...
1、BigInteger类:用来表示超过Integer范围的数据并进行运算。2、BigInteger类构造方法: BigInteger(String val): 3、BigInteger类成员方法(加减运算): public BigInteger add(BigInteger val):加 public BigInteger subtract(BigInteger val):减...
【代码】ClickHouse默认库system日志清理方法(query_log、asynchronous_metric_log)
python模拟报数游戏有n个人围成一圈,从0到n-1按顺序编号,从第一个人开始从1到k报数,报到k的人推出圈子,然后圈子缩小,从下个人继续游戏,问最后留下来的是几号?from itertools import cycledef demo(people, k): # 报数报到k的人退出 lst1 = people[:] while len(lst1) > 1: c = cycle(lst1) #将列表设为循环列表 for i in range(k
【转自:https://blog.csdn.net/roger__wong/article/details/41175967】原文地址:http://en.wikipedia.org/wiki/Latent_semantic_analysis前言浅层语义分析(LSA)是一种自然语言处理中用到的方法,其通过“矢量语义空间”来提取文档与词中的“概念”,进而分析文档与词之间的关系。LSA的基...
当使用该代码混淆器Dotfuscator Community Edition时,会提示注册激活专业版,可以跳过不注册。 使用该工具会有个问题。就是下拉框的值会取不到!下面是详细过程。代码片段为使用的插入combobox列表数据的方法。class comboBoxHelper{/// &lt;summary&gt; /// 填充数据库查询的下拉框数据 ...