小Q搜寻了整个魔法世界找到了四块魔法石所在地,当4块魔法石正好能构成一个正方形的时候将启动魔法阵,小Q就可以借此实现一个愿望。
现在给出四块魔法石所在的坐标,小Q想知道他是否能启动魔法阵
小Q搜寻了整个魔法世界找到了四块魔法石所在地,当4块魔法石正好能构成一个正方形的时候将启动魔法阵,小Q就可以借此实现一个愿望。
现在给出四块魔法石所在的坐标,小Q想知道他是否能启动魔法阵
输入的第一行包括一个整数(1≤T≤5)表示一共有T组数据
每组数据的第一行包括四个整数x[i](0≤x[i]≤10000),即每块魔法石所在的横坐标
每组数据的第二行包括四个整数y[i](0≤y[i]≤10000),即每块魔法石所在的纵坐标
对于每组数据,如果能启动魔法阵输出“Yes”否则输出“No”。
3 0022 0202 0156 1605 0077 0303
Yes Yes No
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int t=in.nextInt(); while(t>0){ int[] rows=new int[4]; int idx=0; String s=in.next(); for(int i=0;i<s.length();i++){ rows[idx++]=(int)(s.charAt(i)-'0'); } int[] cols=new int[4]; s=in.next(); idx=0; for(int i=0;i<s.length();i++){ cols[idx++]=(int)(s.charAt(i)-'0'); } Map<Integer,Integer> cnt=new HashMap(); int max=0; for(int i=0;i<4;i++){ for(int j=i+1;j<4;j++){ int distance=(rows[i]-rows[j])*(rows[i]-rows[j])+(cols[i]-cols[j])*(cols[i]-cols[j]); cnt.put(distance,cnt.getOrDefault(distance,0)+1); if(cnt.get(distance)>max) max=cnt.get(distance); } } System.out.println(cnt.size()==2&&max==4?"Yes":"No"); t--; } } }
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); String[] current; for(int i=0;i<n;i++){ int maxX=-1,minX=10001; current=scanner.next().split(""); for(int j=0;j<4;j++){ maxX=Math.max(maxX,Integer.valueOf(current[j])); minX=Math.min(minX,Integer.valueOf(current[j])); } int maxY=-1,minY=10001; current=scanner.next().split(""); for(int j=0;j<4;j++){ maxY=Math.max(maxY,Integer.valueOf(current[j])); minY=Math.min(minY,Integer.valueOf(current[j])); } if(maxX-minX==maxY-minY){ System.out.println("Yes"); }else{ System.out.println("No"); } } } }