/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
enum FlippableMember {
A(Flippable.A), B(Flippable.B), Y(Flippable.Y), Z(Flippable.Z);
private Flippable value;
private FlippableMember(Flippable value) {
this.value = value;
}
public Flippable value() {
return value;
}
}
enum Flippable {
A (FlippableMember.Z), B (FlippableMember.Y), Y (FlippableMember.B), Z (FlippableMember.A);
private FlippableMember opposite;
private Flippable(FlippableMember opposite) {
this.opposite = opposite;
}
public Flippable flip() {
return opposite.value();
}
}
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Flippable foo = Flippable.B;
System.
out.
println(foo.
flip());
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgplbnVtIEZsaXBwYWJsZU1lbWJlciB7CglBKEZsaXBwYWJsZS5BKSwgQihGbGlwcGFibGUuQiksIFkoRmxpcHBhYmxlLlkpLCBaKEZsaXBwYWJsZS5aKTsKCXByaXZhdGUgRmxpcHBhYmxlIHZhbHVlOwoKICBwcml2YXRlIEZsaXBwYWJsZU1lbWJlcihGbGlwcGFibGUgdmFsdWUpIHsKICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICB9CgogIHB1YmxpYyBGbGlwcGFibGUgdmFsdWUoKSB7CiAgICByZXR1cm4gdmFsdWU7CiAgfQp9CgplbnVtIEZsaXBwYWJsZSB7CiAgQSAoRmxpcHBhYmxlTWVtYmVyLlopLCBCIChGbGlwcGFibGVNZW1iZXIuWSksIFkgKEZsaXBwYWJsZU1lbWJlci5CKSwgWiAoRmxpcHBhYmxlTWVtYmVyLkEpOwoKICBwcml2YXRlIEZsaXBwYWJsZU1lbWJlciBvcHBvc2l0ZTsKCiAgcHJpdmF0ZSBGbGlwcGFibGUoRmxpcHBhYmxlTWVtYmVyIG9wcG9zaXRlKSB7CiAgICB0aGlzLm9wcG9zaXRlID0gb3Bwb3NpdGU7CiAgfQoKICBwdWJsaWMgRmxpcHBhYmxlIGZsaXAoKSB7CiAgICByZXR1cm4gb3Bwb3NpdGUudmFsdWUoKTsKICB9Cn0KCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJRmxpcHBhYmxlIGZvbyA9IEZsaXBwYWJsZS5COwoJCVN5c3RlbS5vdXQucHJpbnRsbihmb28pOwoJCVN5c3RlbS5vdXQucHJpbnRsbihmb28uZmxpcCgpKTsKCgl9Cn0K