hdu2093
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
using namespace std;
int m;
struct node{
char name[];
int time,acno; }p[];
bool cmp(node a,node b){
if(a.acno==b.acno&&a.time==b.time) return (strcmp(b.name,a.name)>);
else if(a.acno==b.acno) return a.time<b.time;
else return a.acno>b.acno;
}
int change(char tmp[]){
int sum,res=,i,t=,k,j;
double cnt;
int l=strlen(tmp);
if(tmp[l-]==')'){
cnt=;
for(i=l-;tmp[i]!='(';--i){
k=;
for(j=;j<cnt;++j)
k*=;
t+= k * (tmp[i]-'');
cnt=cnt+;
}
tmp[i]='\0';
l=strlen(tmp);
}
cnt=;
for(i=l-;i>=;--i){
k=;
for(j=;j<cnt;++j)
k*=;
res+= k * (tmp[i]-'');
cnt=cnt+;
}
return res+t*m;
}
int main(){
int n,i,j,cnt=;
while(~scanf("%d%d",&n,&m)){
cnt=;
char tmp[];
for(j=;j<;++j){
scanf("%s",p[cnt].name);
p[cnt].acno=;
p[cnt].time=;
for(i=;i<n;++i){
scanf("%s",tmp);
if(tmp[]=='-'||tmp[]=='') continue;
else p[cnt].time+= change(tmp);
p[cnt].acno++;
}
cnt++;
}
sort(p,p+cnt,cmp);
for(i=;i<cnt;++i){
printf("%-10s %2d %4d\n",p[i].name,p[i].acno,p[i].time); }
}
return ;
}
hdu2093的更多相关文章
- HDU2093 字符串2种不错的读入思路
<span style="font-family: 'Times New Roman'; font-size: 12px; background-color: rgb(255, 255 ...
- hdu2093 考试排名(还需完善)
下面代码是借鉴的.好多的知识点等着完善 #include <iostream> #include <string> #include <algorithm> usi ...
- OJ题目分类
POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...
- hdu2090-2097
hdu2090 模拟 #include<stdio.h> int main(){ ]; ,a1,a2; ; while(scanf("%s%lf%lf",b,& ...
随机推荐
- 在单线程中你最好使用ArrayList而不是Vector
<java核心技术卷一>571页上提到Vector类的所有方法都是同步的.可以由两个线程安全地访问同一个Vector对象.显然,如果可以确定我们不会在多个线程中对这个数组进行操作的话,我们 ...
- WCF bindings comparison z
Binding Protocol/Transport Message Encoding Security Default Session Transaction Duplex BasicHttpBin ...
- PXE批量部署linux操作系统
前言 在实际生产环境中,有时候我们会碰到为几十上百甚至上千台服务器安装Linux操作系统的需求,如果我们还是常规的去使用移动介质逐台安装,显然是一件低效又令人抓狂的事情,那要安装到何年何月啊?这对于我 ...
- Java中this关键字在构造方法中的使用
1. Java中this关键字代表对象本身.用this关键字可以在类的内部调用属性和方法,这样代码的可读性比较高,因为它明确的指出了这个属性或方法的来源. 2. 同时在构造函数中也可以使用this关键 ...
- C# BackgroundWorker的使用【转-http://www.cnblogs.com/tom-tong/archive/2012/02/22/2363965.html】
BackgroundWorker 可以用于启动后台线程. 主要的事件及参数: 1.DoWork——当执行BackgroundWorker.RunWorkerAsync方法时会触发该事件,并且传递DoW ...
- types.MethodType
http://stackoverflow.com/questions/972/adding-a-method-to-an-existing-object-instance 532down voteac ...
- jsp页面List迭代
1.行迭代 <tbody> <c:choose> <c:when test="${not empty result}"> &l ...
- window8.1中用户的管理员权限的提升方法
1.使用命令netplwiz 2.点击确定后出现如下所示的内容,选择待修改的用户 3.然后点击属性,出现如图的内容 在上图中选中管理员左侧的单选按钮便可以了,将当前用户提升为管理员账户.
- jQuery与Ajax
Ajax简介 : Asynchronous Javascript And XML (异步的JavaScript和XML) AJAX 不是新的编程语言,而是一种使用现有标准创建快速动态网页的技术. 通过 ...
- python学习(一):环境安装及HelloWorld
一.安装注意事项: 在安装python的第三方库时,(平台是win)要 注意所下载的包的版本,一要与所安装的python版本相对应,同时还有注意操作系统的位数(32位还是64位).下载好后,先将c:\ ...