小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.*;
public class Main {
private static int t;
private static int N = 6;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
t = Integer.parseInt(in.nextLine());
boolean[] isCubic = new boolean[t];
for (int i = 0; i < t; i ++) {
String xs = in.nextLine();
String ys = in.nextLine();
int[] dists = new int[N];
int count = 0;
for (int j = 0; j < 4; j ++) {
for (int k = j+1; k < 4; k ++) {
int dx = xs.charAt(j) - xs.charAt(k);
int dy = ys.charAt(j) - ys.charAt(k);
dists[count++] = dx*dx + dy*dy;
}
}
Arrays.sort(dists);
boolean checkEdge = true;
count = dists[0];
for (int j = 0; j < 4; j ++) {
if (dists[j] != count) checkEdge = false;
}
boolean checkSquare = true;
for (int j = 4; j < N; j ++) {
if (dists[j] != count*2) checkSquare = false;
}
isCubic[i] = checkEdge && checkSquare;
}
for (int i = 0; i < t; i ++) {
if (isCubic[i]) System.out.println("Yes");
else System.out.println("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");
}
}
}
}