Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.school;
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- int len;
- len = in.nextInt();
- int count = 0;
- int[][] T = new int[0][0]; // Двумерный массив со всеми вариациями перестановок кубиков
- if (len == 4)
- {
- T = new int[4*3*2][4]; // Генерриуем все варианты перестановки для 4-х кубов
- for (int i = 0; i < len; i++) {
- for (int j = 0; j < len; j++) {
- for (int k = 0; k < len; k++) {
- for (int f = 0; f < len; f++) {
- if (f == k || k == j || j == i || i == k || j == f || f == i) continue;
- T[count][0] = i;
- T[count][1] = j;
- T[count][2] = k;
- T[count][3] = f;
- count += 1;
- }
- }
- }
- }
- }
- else if (len == 3) { // Генерируем все варианты перестанвоки для 3-х кубов
- T = new int[3*2][4];
- for (int j = 0; j < len; j++) {
- for (int k = 0; k < len; k++) {
- for (int f = 0; f < len; f++) {
- if (f == k || k == j || j == f) continue;
- T[count] = new int[3];
- T[count][0] = j;
- T[count][1] = k;
- T[count][2] = f;
- count += 1;
- }
- }
- }
- }
- else if (len == 2) // Двух
- {
- T = new int[][] {
- {0, 1}, {1, 0}
- };
- count = 2;
- }
- else if (len == 1) { // И одного
- T = new int[][] {
- {0}
- };
- count = 1;
- }
- int[] current = new int[len];
- String curr;
- int[] mode = new int[len];
- int[][] values = new int[len][6];
- for (int j = 0; j < len; j++)
- for (int i = 0; i < 6; i++)
- values[j][i] = in.nextInt();
- curr = in.next();
- for (int i = 0; i < len; i++)
- current[i] = curr.charAt(i) - 48; // Переводим полученные значения в массив из четырех элементов
- int correct = 0;
- for (int k = 0; k < count; k++) // Для каждой из перестановок
- {
- correct = 0;
- for (int s = 0; s < len; s++) // Получаем список верхних граней, надо для ответа
- mode[s] = T[k][s];
- for (int j = 0; j < len; j++) { // Перебираем все кубы
- for (int i = 0; i < 6; i++) // И каждую грань на каждом кубе
- {
- if (values[T[k][j]][i] == current[j]) // Если совпадает - увеличиваем счетчик
- {
- correct += 1;
- break;
- }
- }
- }
- if (correct == len) break; // Если все цифры нашли - все круто
- }
- if (correct == len) {
- System.out.println("Yes");
- for (int i = 0; i < len; i++)
- {
- System.out.print(mode[i] + 1 + " ");
- }
- }
- else
- {
- System.out.println("No");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment