We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
importjava.io.*;importjava.util.*;classStudent{intid;Stringname;doublecgpa;Student(intid,Stringname,doublecgpa){this.id=id;this.name=name;this.cgpa=cgpa;}}publicclassSolution{publicstaticList<Student>solve(List<String>events){PriorityQueue<Student>pq=newPriorityQueue<>((a,b)->{if(a.cgpa!=b.cgpa)returnDouble.compare(b.cgpa,a.cgpa);if(!a.name.equals(b.name))returna.name.compareTo(b.name);returnInteger.compare(a.id,b.id);});for(Stringevent:events){String[]parts=event.split(" ");if(parts[0].equals("ENTER")){Stringname=parts[1];doublecgpa=Double.parseDouble(parts[2]);intid=Integer.parseInt(parts[3]);pq.add(newStudent(id,name,cgpa));}elseif(!pq.isEmpty()){pq.poll();}}List<Student>remaining=newArrayList<>();while(!pq.isEmpty())remaining.add(pq.poll());returnremaining;};publicstaticvoidmain(String[]args){/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */Scannersc=newScanner(System.in);intn=Integer.parseInt(sc.nextLine());List<String>events=newArrayList<>();while(n-->0)events.add(sc.nextLine());List<Student>st=solve(events);if(st.isEmpty())System.out.println("EMPTY");elsefor(Students:st)System.out.println(s.name);}}
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Java Priority Queue
You are viewing a single comment's thread. Return to all comments →