要将一條直徑至少為 1 個機關的長管道水準送入地形複雜的岩洞中,究竟是否可能?下面的兩幅圖分别給出了岩洞的剖面圖,深藍色的折線勾勒出岩洞頂部和底部的輪廓。圖 1 是有可能的,綠色部分顯示直徑為 1 的管道可以送入。圖 2 就不可能,除非把頂部或底部的突出部分削掉 1 個機關的高度。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cGcq5CO4YjM3QGNmFWMkFzNyQGNzYzX5QzN1cTM3EzLcBTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.jpg)
本題就請你編寫程式,判斷給定的岩洞中是否可以施工。
輸入格式:
輸入在第一行給出一個不超過 100 的正整數 N,即橫向采樣的點數。随後兩行資料,從左到右順次給出采樣點的縱坐标:第 1 行是岩洞頂部的采樣點,第 2 行是岩洞底部的采樣點。這裡假設坐标原點在左下角,每個縱坐标為不超過 1000 的非負整數。同行數字間以空格分隔。
題目保證輸入資料是合理的,即岩洞底部的輪廓線不會與頂部輪廓線交叉。
輸出格式:
如果可以直接施工,則在一行中輸出
Yes
和可以送入的管道的最大直徑;如果不行,則輸出
No
和至少需要削掉的高度。答案和數字間以 1 個空格分隔。
輸入樣例 1:
11
7 6 5 5 6 5 4 5 5 4 4
3 2 2 2 2 3 3 2 1 2 3
輸出樣例 1:
Yes 1
輸入樣例 2:
11
7 6 5 5 6 5 4 5 5 4 4
3 2 2 2 3 4 3 2 1 2 3
輸出樣例 2:
No 1
代碼實作:
import java.io.*;
/**
* @author yx
* @date 2022-07-27 16:08
*/
public class Main {
static PrintWriter out=new PrintWriter(System.out);
static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));
static StreamTokenizer in=new StreamTokenizer(ins);
public static void main(String[] args) throws IOException {
in.nextToken();
int N=(int) in.nval;
int max=0;
int min=1000000000;
for (int i = 0; i < N; i++) {
in.nextToken();
int temp=(int) in.nval;
if(temp < min){
min=temp;
}
}
for (int i = 0; i < N; i++) {
in.nextToken();
int temp=(int) in.nval;
if(temp > max){
max=temp;
}
}
if(min>max){
System.out.println("Yes "+(min-max));
}else {
System.out.println("No "+(max-min+1));
}
}
}