Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

Dice IV

Write a program which reads $n$ dices constructed in the same way as Dice I, and determines whether they are all different. For the determination, use the same way as Dice III.

Input

In the first line, the number of dices $n$ is given. In the following $n$ lines, six integers assigned to the dice faces are given respectively in the same way as Dice III.

Output

Print "Yes" if given dices are all different, otherwise "No" in a line.

Constraints

$2 \leq n \leq 100$

$0 \leq $ the integer assigned to a face $ \leq 100$

Sample Input 1

3
1 2 3 4 5 6
6 2 4 3 5 1
6 5 4 3 2 1

Sample Output 1

No

Sample Input 2

3
1 2 3 4 5 6
6 5 4 3 2 1
5 4 3 2 1 6

Sample Output 2

Yes

Solution in JAVA (judge verdict: Wrong Answer)



import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);

		// ????????????????????°?????\???
		int diceCount = in.nextInt();
		// ???????????????????????????????´???????
		int[] diceArray = new int[6];
		// ???????????§??????????????????????????????????´????????????????
		ArrayList<dice4_1> diceList = new ArrayList<>();

		// ????????????????????°?????????????????????
		for(int diceNumber = 0; diceNumber < diceCount; diceNumber++) {

			// ?????????????????????????????\???
			for(int sideNumber = 0; sideNumber < 6; sideNumber++) {

				diceArray[sideNumber] = in.nextInt();

			}

			// ??????????????????????????§?????????
			dice4_1 dice = new dice4_1(diceArray);
			// ???????????????????????§??????????????????????????????????´?
			diceList.add(dice);

		}

		boolean diceMatch = false;

		// ??????????????????????????????????????????
		for(int i = 0; i < diceCount - 1; i++) {

			for(int j = i + 1; j < diceCount; j++) {

				diceMatch = diceCompare(diceList.get(i), diceList.get(j));

			}
		}

		// ???????????????1?????§????????´??????????????°"Yes"???????????°"No"?????¨???
		System.out.println(diceMatch ? "No" : "Yes");

	}

	 // ?????????????????????????????????????????????????????????????????????
	private static boolean diceCompare(dice4_1 dice1, dice4_1 dice2) {

		// ??????6??¢??¨????????\???????????????????????¢??????
		for(int i = 0; i < 6; i++) {

			// ?????¨?¨???????????????¢??????
			if(i % 2 == 0) {

				// ??????????????¢??????
				dice1.roll('S');

			}else {

				// ?¨????????????¢??????
				dice1.roll('E');

			}

			// ?????????4??¢??¨????????\??????????????????????????¢?????????
			for(int j = 0; j < 4; j++) {

				dice1.turn('R');

				// 6??¢??¨???????????´????????°true?????????
				if(dice1.diceNum1 == dice2.diceNum1 && dice1.diceNum2 == dice2.diceNum2
						&& dice1.diceNum3 == dice2.diceNum3 && dice1.diceNum4 == dice2.diceNum4
						&& dice1.diceNum5 == dice2.diceNum5 && dice1.diceNum6 == dice2.diceNum6) {

					return true;

				}
			}
		}

		// ??¨????????????????????§?????´??????????????°false?????????
		return false;

	}
}


class dice4_1{

	int[] dice_number;
	int diceNum1;
	int diceNum2;
	int diceNum3;
	int diceNum4;
	int diceNum5;
	int diceNum6;

	// ?????????????????????
	dice4_1(int[] dice_number){

		this.dice_number = dice_number;
		this.diceNum1 = dice_number[0];
		this.diceNum2 = dice_number[1];
		this.diceNum3 = dice_number[2];
		this.diceNum4 = dice_number[3];
		this.diceNum5 = dice_number[4];
		this.diceNum6 = dice_number[5];

	}

	// ???????????????????????????
	public int[] getDice_number() {
		return dice_number;
	}

	public void setDice_number(int[] dice_number) {
		this.dice_number = dice_number;
	}

	public int getDiceNum1() {
		return diceNum1;
	}

	public void setDiceNum1(int diceNum1) {
		this.diceNum1 = diceNum1;
	}

	public int getDiceNum2() {
		return diceNum2;
	}

	public void setDiceNum2(int diceNum2) {
		this.diceNum2 = diceNum2;
	}

	public int getDiceNum3() {
		return diceNum3;
	}

	public void setDiceNum3(int diceNum3) {
		this.diceNum3 = diceNum3;
	}

	public int getDiceNum4() {
		return diceNum4;
	}

	public void setDiceNum4(int diceNum4) {
		this.diceNum4 = diceNum4;
	}

	public int getDiceNum5() {
		return diceNum5;
	}

	public void setDiceNum5(int diceNum5) {
		this.diceNum5 = diceNum5;
	}

	public int getDiceNum6() {
		return diceNum6;
	}

	public void setDiceNum6(int diceNum6) {
		this.diceNum6 = diceNum6;
	}

	// ?????????????????¢??????????????????
	void roll(char roll_direction){

		int tmp;

		switch(roll_direction){

		// ?????????????????¢??????
		case 'S':

			tmp = diceNum1;
			diceNum1 = diceNum5;
			diceNum5 = diceNum6;
			diceNum6 = diceNum2;
			diceNum2 = tmp;

			break;

		// ?\\???????????¢??????
		case 'N':

			tmp = diceNum1;
			diceNum1 = diceNum2;
			diceNum2 = diceNum6;
			diceNum6 = diceNum5;
			diceNum5 = tmp;

			break;

		// ??????????????¢??????
		case 'W':

			tmp = diceNum1;
			diceNum1 = diceNum3;
			diceNum3 = diceNum6;
			diceNum6 = diceNum4;
			diceNum4 = tmp;

			break;

		// ??????????????¢??????

		case 'E':

			tmp = diceNum1;
			diceNum1 = diceNum4;
			diceNum4 = diceNum6;
			diceNum6 = diceNum3;
			diceNum3 = tmp;

			break;

		}
	}

	// ?????????????????????????????¢?????????????????????
	void turn(char turn_direction) {

		int tmp;

		switch(turn_direction) {

		// ????????¢
		case 'R':

			tmp = diceNum2;
			diceNum2 = diceNum4;
			diceNum4 = diceNum5;
			diceNum5 = diceNum3;
			diceNum3= tmp;

			break;

		// ????????¢
		case 'L':

			tmp = diceNum2;
			diceNum2 = diceNum3;
			diceNum3 = diceNum5;
			diceNum5 = diceNum4;
			diceNum4 = tmp;

			break;

		}
	}
}