I don’t understand what is wrong with my code. It doesn’t pass all test cases.
import java.util.*;
public class Main {
static class sortGame{
String name;
Integer salary;
public sortGame(String name,Integer salary)
{
this.name=name;
this.salary=salary;
}
}
public static void sort(sortGame []arr,int x)
{
if(arr.length==0) return;
Arrays.sort(arr,new Comparator<sortGame>(){
public int compare(sortGame s1,sortGame s2)
{
if (s1.salary.equals(s2.salary)) {
if (s1.name.contains(s2.name) || s2.name.contains(s1.name)) {
return s2.name.compareTo(s1.name);
}
return s1.name.compareTo(s2.name);
}
return s2.salary - s1.salary;
}
});
for(int i=0;i<arr.length;i++)
{
if(arr[i].salary>x)
{
System.out.println(arr[i].name+" "+arr[i].salary);
}
}
}
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
int n=sc.nextInt();
sortGame []arr=new sortGame[n];
for(int i=0;i<n;i++)
{
String name=sc.next();
int salary=sc.nextInt();
arr[i]=new sortGame(name,salary);
}
sort(arr,x);
}
}