4. +
SourceCode
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] strs = sc.nextLine().split(" ");
int n = Integer.parseInt(strs[0]);
int k = Integer.parseInt(strs[1]);
strs = sc.nextLine().split(" ");
new VeryFastExecution(strs,k);
}
}
5. + class Execution {
private Person[] persons;
public Execution(String[] data) {
persons = mapper(intArrayParser(data));
}
public int askRank(int targetRank, int targetPerson) {
ArrayList<Person> tmp = filter(persons, targetRank);
Collections.sort(tmp, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.index - o2.index;
}
});
return tmp.get(targetPerson - 1).rank;
}
6. +
private int[] intArrayParser(String[] strs) {
int[] arr = new int[strs.length];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(strs[i]);
}
return arr;
}
private Person[] mapper(int[] data) {
Person[] persons = new Person[data.length];
for (int i = 0; i < data.length; i++) {
persons[i] = new Person(i + 1, data[i]);
}
return persons;
}
private ArrayList<Person> filter(Person[] data, int target) {
ArrayList<Person> tmp = new ArrayList<>();
for (Person p : data) {
if (p.rank <= target) {
tmp.add(p);
}
}
return tmp;
}
}