📄 3842589_ac_422ms_3496k.java
字号:
//package poj.p1560;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
private String[] table = new String[26];
private String elements;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Main().run();
}
private void run() {
Scanner in = new Scanner(System.in);
int n;
label: while (true) {
n = in.nextInt();
if (n == 0) {
break;
}
elements = in.next();
System.out.print("S = {");
for (int i = 0; i < n; i++) {
System.out.print(elements.charAt(i));
if (i != n - 1) {
System.out.print(",");
} else {
System.out.println("}");
}
}
System.out.println(" #|" + elements);
System.out.print(" -+");
for (int i = 0; i < n; i++) {
System.out.print("-");
}
System.out.println();
for (int i = 0; i < n; i++) {
table[i] = in.next();
System.out.println(" " + elements.charAt(i) + "|" + table[i]);
}
System.out.println();
String tmp = sort();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
char ch = getTableEntry(tmp.charAt(i), tmp.charAt(j));
if (elements.indexOf(ch) == -1) {
System.out.println("NOT A SEMIGROUP: " + tmp.charAt(i)
+ "#" + tmp.charAt(j) + " = " + ch
+ " WHICH IS NOT AN ELEMENT OF THE SET");
end();
continue label;
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
char ch1 = getTableEntry(tmp.charAt(i), tmp.charAt(j));
ch1 = getTableEntry(ch1, tmp.charAt(k));
char ch2 = getTableEntry(tmp.charAt(j), tmp.charAt(k));
ch2 = getTableEntry(tmp.charAt(i), ch2);
if (ch1 != ch2) {
System.out.println("NOT A SEMIGROUP: ("
+ tmp.charAt(i) + "#" + tmp.charAt(j)
+ ")#" + tmp.charAt(k)
+ " IS NOT EQUAL TO " + tmp.charAt(i)
+ "#(" + tmp.charAt(j) + "#"
+ tmp.charAt(k) + ")");
end();
continue label;
}
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
char ch1 = getTableEntry(tmp.charAt(i), tmp.charAt(j));
char ch2 = getTableEntry(tmp.charAt(j), tmp.charAt(i));
if (ch1 != ch2) {
System.out.println("SEMIGROUP BUT NOT COMMUTATIVE ("
+ tmp.charAt(i) + "#" + tmp.charAt(j)
+ " IS NOT EQUAL TO " + tmp.charAt(j) + "#"
+ tmp.charAt(i) + ")");
end();
continue label;
}
}
}
System.out.println("COMMUTATIVE SEMIGROUP");
end();
}
}
private char getTableEntry(char ch1, char ch2) {
// TODO Auto-generated method stub
return table[elements.indexOf(ch1)].charAt(elements.indexOf(ch2));
}
private String sort() {
// TODO Auto-generated method stub
char[] charArray = elements.toCharArray();
Arrays.sort(charArray);
return new String(charArray);
}
private void end() {
System.out.println("------------------------------\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -