題目描述:java
小廣附近有家盒馬店,該店提供配送服務,配送範圍是系統根據各項指標決策出的一個多邊形,假設小廣如今的位置爲(x,y),請問小廣是否在該盒馬店的配送範圍內,若是不在配送範圍內請問他要最少要走多少距離才能到盒馬店配送範圍內。假設座標點在二維平面上,不考慮地球曲率等因素。blog
輸入:class
x,y(表明小廣所在的位置,x表示橫座標,y表示縱座標)import
x1,y1,x2,y2,x3,y3....xn,yn(表明該盒馬店的配送範圍多邊形,其中x表示橫座標,y表示縱座標,xi和yi表明多邊形一個點,點與點按順序相連造成邊,而且最後一個點(xn,yn)與第一個點(x1,y1)相連)im
輸出:next
請問小廣是否在盒馬店的配送範圍內,若是不在配送範圍內請問他要最少走多少距離才能到盒馬店配送範圍內,輸出結果爲整數(四捨五入)sort
舉例說明:static
輸入:di
1,1
0,0,0,2,2,2,2,0new
輸出:
yes,0
輸入:
2,2
0,0,0,2,2,2,2,0
輸出:
yes,0
輸入:
3,0
0,0,0,2,2,2,2,0
輸出:
no,1
輸入:
3,4
0,0,0,2,2,2,2,0
輸出:
no,2
import java.util.Arrays; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str= scan.next(); String s = str.replace(",",""); char[] b = s.toCharArray(); int[] arr = new int[2]; for(int i=0;i<b.length;i++){ arr[i] = b[i]-48; } String str2= scan.next(); String s2 = str2.replace(",",""); char[] b2 = s2.toCharArray(); int[] arr3 = new int[4]; int[] arr4 = new int[4]; for(int i=0,j=0;i<b2.length;i+=2){ arr3[j++] = b2[i]-48; } Arrays.sort(arr3); for(int i=1,j=0;i<b2.length;i+=2){ arr4[j++] = b2[i]-48; } Arrays.sort(arr4); if(arr[0]>=arr3[0]&&arr[0]<=arr3[3]&&arr[1]>=arr4[0]&&arr[1]<=arr4[3]){ System.out.println("yes,0"); } if(arr[0]>=arr3[0]&&arr[0]<=arr3[3]&&arr[1]>arr4[3]){ int y = arr[1] - arr4[3]; if(y<0){ y = -y; } System.out.println("no,"+y); } if(arr[0]>arr3[3]&&arr[1]>=arr3[0]&&arr[1]<=arr4[3]){ int x = arr[0] - arr3[3]; if(x<0){ x = -x; } System.out.println("no,"+x); } if(arr[0]>arr3[3]&&arr[1]>arr4[3]){ int x = arr[0] - arr3[3]; if(x<0){ x = -x; } int y = arr[1] - arr4[3]; if(y<0){ y = -y; } int m =x; if(m<y){ m = y; } System.out.println("no,"+m); } } }