pta 抢红包代码
java实现pta抢红包代码,因为超时,没有办法跑完所有测试,只能拿到19分。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;
public class Work3_9 {
public static class Person {
int id=0;
double money=0;
int times=0;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
Person[] pe = new Person[num];
for (int i = 0; i < num; i++) {
pe[i]=new Person();
pe[i].id=i;
}
for (int i = 0; i < num; i++) {
int k = input.nextInt();
int sum = 0;
for (int j = 0; j < k; j++) {
int id = input.nextInt() - 1;
pe[id].times = pe[id].times + 1;
double red_packet = input.nextDouble();
pe[id].money += red_packet;
sum += red_packet;
}
pe[i].money -= sum;
}
Person temp;
for (int i = 0; i < pe.length; i++) {
for (int j = i; j < pe.length; j++) {
if(pe[i].money<pe[j].money) {
temp=pe[i];
pe[i]=pe[j];
pe[j]=temp;
}
else if(pe[i].money==pe[j].money) {
if(pe[i].times<pe[j].times) {
temp=pe[i];
pe[i]=pe[j];
pe[j]=temp;
}
else if(pe[i].times==pe[j].times) {
if(pe[i].id>pe[j].id) {
temp=pe[i];
pe[i]=pe[j];
pe[j]=temp;
}
}
}
}
}
for (int i = 0; i < pe.length; i++) {
pe[i].money/=100;
System.out.println((pe[i].id+1)+" "+String.format("%.2f", pe[i].money));
}
}
}