import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public void swap(String[] a,String []b){
String name=a[0],title=a[1],score=a[2];
a[0]=b[0];a[1]=b[1];a[2]=b[2];
b[0]=name;b[1]=title;b[2]=score;
}
public static void main(String[] args) {
Scanner Input = new Scanner(System.in);
String str = Input.nextLine();
String[] basic = str.split(" ");
int number = Integer.parseInt(basic[0]);
int m = Integer.parseInt(basic[1]);
List<String> list = new ArrayList<String>();
List<String[]> list1 = new ArrayList<String[]>();//获取最终每行元素的链表
int p = 0;
while (Input.hasNext()) {
list.add(Input.nextLine());//获取输入
}
for(String i :list)
{
String[] a=i.split(" ");//将每一行进行按空格的分解
String[] b=new String[number+1];//用于保存最后正确的分解结果
int flag=0;
for(String c:a)
{
if(!c.equals("")&&!c.equals(" ")&&flag<=number) {
b[flag] = c;
flag++;
}
}
list1.add(b);
}
String[][] result = new String[list.size()][3];//最后结果
int Flag=0;
for(String[] a:list1){
int score=0;
int submit=0;
int ac=0;
for(int i=1;i<a.length;i++){//第一个肯定是名字,所以从第二个开始
if(a[i].contains("-"))//全部为错误提交
{
// submit+=Integer.parseInt(String.valueOf(b[j]))*Math.pow(10,b.length-1-j);
}
else if(a[i].contains("(")){//部分正确,存在错误提交
int k=a[i].indexOf("(");
for(int n=0;n<k;n++){//获取正确分数
score+=Integer.parseInt(String.valueOf(a[i].charAt(n)))*Math.pow(10,k-n-1);
}
ac+=1;
for(int n=k+1;n<a[i].indexOf(")");n++){
submit+=Integer.parseInt(String.valueOf(a[i].charAt(n)))*Math.pow(10,a[i].indexOf(")")-1-n);
}
}
else{//只有正确分数
char[] b=a[i].toCharArray();
for(int n=0;n<b.length;n++)
score+=Integer.parseInt(String.valueOf(b[n]))*Math.pow(10,b.length-1-n);
if(Integer.parseInt(String.valueOf(b[0]))!=0)
ac++;
}
}
result[Flag][0]=a[0];
result[Flag][1]=Integer.toString(ac);
if(ac==0)
score=0;
else
score+=submit*m;
result[Flag][2]=Integer.toString(score);
Flag++;
}
for(int i=0;i<result.length;i++)
for(int j=i+1;j<result.length;j++)
{
if(Integer.parseInt(result[i][1])<Integer.parseInt(result[j][1]))
new Main().swap(result[i],result[j]);
else if((Integer.parseInt(result[i][1])==Integer.parseInt(result[j][1]))&&(Integer.parseInt(result[i][2])>Integer.parseInt(result[j][2])))
new Main().swap(result[i],result[j]);
else if((Integer.parseInt(result[i][1])==Integer.parseInt(result[j][1]))&&(Integer.parseInt(result[i][2])==Integer.parseInt(result[j][2])))
if(result[i][0].compareTo(result[j][0])<0)
new Main().swap(result[i],result[j]);
}
for(int i=0;i<result.length;i++) {
System.out.printf("%-10s",result[i][0]);System.out.printf(" ");System.out.printf("%2s",result[i][1]);System.out.printf(" ");System.out.printf("%4s",result[i][2]);System.out.println();
}
}
}
杭电OJ2093
最新推荐文章于 2023-12-08 19:42:57 发布