求大神解答洛谷P1071 C++代码为什么WA一个点qwq 但是Clion上能过

#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int cnt;
bool book[26];
char key[26];
string a,b,c;
int main()
{
    getline(cin,a);
    getline(cin,b);
    getline(cin,c);
    for(int i = 0;i < (int)b.size()-1;i++){
        if(book[a[i]-'A'])//已经有了
        {
            if(key[a[i]-'A']!=b[i]){
                printf("Failed");
                return 0;
            }
        }else{//还没有
            key[a[i]-'A']=b[i];
            book[a[i]-'A']=true;
            cnt++;
        }
    }
    if(cnt!=26){
        printf("Failed");
    }else{
        for(int i = 0;i < (int)c.size()-1;i++){
            printf("%c",key[c[i]-'A']);
        }
    }
    return 0;
}

样例:
in :
QWERTYUIOPLKJHGFDSAZXCVBNM
QWERTYUIOPLKJHGFDSAZXCVBNN
HIJACK
out:
Failed

图片说明