题目链接:独木桥 - 洛谷
考虑到每个士兵相遇时会转身,两人的总路程也是和相互穿过去时一样多,所以可以看作是士兵之间相遇不会产生影响。
那么时间最短就是:小于一半的往左走,大于一半的往右走,彼此不会相遇。
时间最长的就是反过来相向走。然后都取最大值。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int l = scanner.nextInt();
int n = scanner.nextInt();
int max = 0, min = 0;
for (int i = 1; i <= n; i++) {
int s = scanner.nextInt();
max += Math.max(0, Math.max(s, l - s + 1) - max);
min += Math.max(0, Math.min(s, l - s + 1) - min);
}
System.out.println(min + " " + max);
}
}
示例输入:
输出: