在自然界中,有些物质由同样的单一化学元素组成,因排列方式不同而具有不同性质,称为同素异形体,比如:钻石和石墨。类似地,我们把由相同的数字(包括个数)、不同的排列形成的正整数称为同数异形体。
例如:12121 和 11221 均由 3 个 1 和 2 个 2 组成,因此互为“同数异形体”,但 12121 与 1122则不是。请编程判断两个数是否是同数异形体。
输入格式:
两个正整数 a 和 b,空格隔开,大小不超过2^30。
输出格式:
是否同数异形体的判断结果:
(1)若 a 等于 b,输出 Equal;
(2)若 a 和 b 是同数异形体,则输出 ALIEN;
(3)若 a 和 b 既不相等也不是同数异形体,输出 Different。
输入样例 1:
12121 11221
输出样例 1:
ALIEN
输入样例 2:
12121 1122
输出样例 2:
Different
输入样例 3:
12121 12121
输出样例 3:
Equal
code:
#include<iostream>
using namespace std;
int s1[11], s2[11];
bool isTsyxt(int a, int b) {
int x, y;
while(a / 10) {
x = a % 10;
s1[x]++;
a /= 10;
}
s1[a]++;
while(b / 10) {
y = b % 10;
s2[y]++;
b /= 10;
}
s2[b]++;
for(int i = 0; i < 10; i++) {
if(s1[i] != s2[i]) {
return false;
}
}
return true;
}
int main() {
int a, b;
cin >> a>> b;
if(a == b) {
cout << "Equal";
} else if(isTsyxt(a, b)) {
cout << "ALIEN";
} else {
cout << "Different";
}
}