这道题JAVA能超时我也是无奈了,感觉没啥办法了,自求多福吧... 换python更跪,C++又是VC 6.0,紫金港你特么能不能成点事啊>_<
1 import java.util.*; 2 import java.io.*; 3 4 class FastReader{ 5 BufferedReader reader; 6 StringTokenizer tokenizer; 7 8 public FastReader(InputStream stream){ 9 reader = new BufferedReader(new InputStreamReader(stream), 123456789); 10 tokenizer = null; 11 } 12 13 public String next(){ 14 while (tokenizer == null || !tokenizer.hasMoreTokens()){ 15 try{ 16 tokenizer = new StringTokenizer(reader.readLine()); 17 } catch (Exception e){ 18 throw new RuntimeException(e); 19 } 20 } 21 22 return tokenizer.nextToken(); 23 } 24 25 public int next_int(){ 26 return Integer.parseInt(next()); 27 } 28 } 29 30 class StudentInfo{ 31 String id; 32 String name; 33 int grade; 34 } 35 36 public class Main { 37 public static void main(String[] args){ 38 FastReader reader = new FastReader(System.in); 39 int N = reader.next_int(); 40 int C = reader.next_int(); 41 42 ArrayList<StudentInfo> students = new ArrayList<StudentInfo>(); 43 for (int i = 0; i < N; i++){ 44 StudentInfo s = new StudentInfo(); 45 s.id = reader.next(); 46 s.name = reader.next(); 47 s.grade = reader.next_int(); 48 49 students.add(s); 50 } 51 52 if (C == 1){ 53 Collections.sort(students, new Comparator<StudentInfo>(){ 54 public int compare(StudentInfo s1, StudentInfo s2){ 55 return s1.id.compareTo(s2.id); 56 } 57 }); 58 } else if (C == 2){ 59 Collections.sort(students, new Comparator<StudentInfo>(){ 60 public int compare(StudentInfo s1, StudentInfo s2){ 61 if (!s1.name.equals(s2.name)) 62 return s1.name.compareTo(s2.name); 63 else{ 64 return s1.id.compareTo(s2.id); 65 } 66 } 67 }); 68 } else { 69 Collections.sort(students, new Comparator<StudentInfo>(){ 70 public int compare(StudentInfo s1, StudentInfo s2){ 71 if (s1.grade != s2.grade) 72 return s1.grade - s2.grade; 73 else{ 74 return s1.id.compareTo(s2.id); 75 } 76 } 77 }); 78 } 79 80 for (StudentInfo s : students){ 81 System.out.println(s.id + " " + s.name + " " + s.grade); 82 } 83 } 84 }
时间: 2024-10-17 04:36:31