Description

J 君是机房的红太阳,每次模拟她总是 AK 虐场。然而在 NOIP2117 中,居然出现了另一位 AK 的选手 C 君! 这引起了组委会的怀疑,组委会认为 C 君有抄袭 J 君代码的嫌疑,原因是考试时 C 君正好 坐在 J 君旁边。于是组委会需要你帮她们鉴定一下 C 君是否抄了 J 君的代码。 NOIP2117 一共有 T 道题,每道题需要提交一份阿语言代码 (阿语言是 NOIP2117 的唯一可 用编程语言)。 一份阿语言代码只有一行,仅由小写字母,数字,空格和分号组成。 组委会认为,如果 C 君的代码可以由 J 君的代码经过若干次修改变量名操作得到,C 君就 抄了 J 君的代码。 一次修改变量名操作被定义为将代码中的所有小写字母 x 替换为小写字母 y(此处 x, y 代指 任意小写字母)。 请你告诉组委会,对于每道题,C 君是否抄了 J 君的代码。

Input

第一行一个正整数 T。 接下来 2T 行,第 2i 行代表 J 君对于第 i 道题的提交代码,第 2i + 1 行代表 C 君对于第 i 道题的提交代码。

Output

输出 T 行,如果对于第 i 道题,C 君抄了 J 君的代码,请在第 i 行输出1,否则请在第 i 行 输出0。

Sample Input

5
int x;
int y;
double a;
double aa;
float 1
float 2
string s;
double d;
print thisismycode;
float tooooooooooo;

Sample Output

1
0
0
1
1

Data Constraint

10% 的数据满足代码中不包含字母。
另外 30% 的数据满足代码中只包含字母。
100% 的数据满足 T ≤ 1000,每行代码中不会包含超过 1000 个字符。

思路

这题坑啊!!!!!出题人是没有想到有环的情况吗!!!!(zzy侥幸过了)

这题只要构建一个映射即可。并且不用判环(我判了,然后WA了)

代码
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=1077;
int n,a[maxn];
char s1[maxn],s2[maxn];
bool check(char x,char y)
{
    if(x==y) return 1;
    int t1=x-96,t2=y-96;
    if(1<=t1&&t1<=26&&1<=t2&&t2<=26)
    {
        if(!a[t1])
        {
            a[t1]=t2; return 1;
        }
        if(a[t1]==t2) return 1;
        return 0;
    }else return 0;
}
int main()
{
    freopen("copycat.in","r",stdin); freopen("copycat.out","w",stdout);
    scanf("%d\n",&n);
    while(n--)
    {
        memset(a,0,sizeof(a));
        char c=getchar();
        int l1=0,l2=0;
        while(c!='\n')
        {
            s1[l1++]=c; c=getchar();
        }
        c=getchar();
        while(c!='\n')
        {
            s2[l2++]=c; c=getchar();
        }
        if(l1!=l2)
        {
            printf("0\n"); continue;
        }
        bool b=0;
        for(int i=0; i<l1; i++)
        {
            if(!check(s1[i],s2[i]))
            {
                b=1; printf("0\n"); break;
            }
        }
        if(b) continue;
        printf("1\n");
    }
}