Первая строка содержит количество марафонов t < 100
.Каждый марафон указан тремя строчками.Первая строка содержит количество бегунов 1 < n <= 40000
.Вторая строка - это перестановка начальных чисел 1,...,n
, которая представляет порядок, в котором бегуны прошли начальную линию.Наконец, третья строка - это перестановка, которая представляет конечный порядок.Для каждого марафона выведите одну строку, которая содержит минимальное количество обгонов, которые произошли во время гонки.
Так, например,
Я действительно не знаю, как я могу создать случайную перестановку 1 < n
и как найтиЗатем, сколько обгонов произошло.Для последнего я бы проверил, сколько чисел больше следующего, то есть, если 4 > 3
, тогда я увеличу int overtaking++;
import java.util.Scanner;
public class MarathonMovement {
public static void main(String[] args) {
Scanner NoM = new Scanner(System.in); // Number of marathons
int t = NoM.nextInt();
Scanner NoR = new Scanner(System.in); // First line: Number of runners
int n = NoR.nextInt();
// Second line: Permutation of starting numbers representing the order in which the runners passed the starting line
// Third line: Permutation which represents finishing order
int overtakings = 0;
for (int i = 0; i < n; i++){
if {
// logic
overtakings++;
}
}
for(int x = 0; x < t; x++){
System.out.println("at least" + overtakings + " overtaking(s)");
}
}
}