var   t,i:longint;
procedure giai;
var   i,n:longint;
      s:string;
begin
     readln(s);n:=length(s);
     for i:=1 to (n+1) div 2 do
     begin
        if (s[i]='?') and (s[n+1-i]<>'?') then s[i]:=s[n-i+1];
        if (s[i]<>'?') and (s[n+1-i]='?') then s[n-i+1]:=s[i];
        if (s[i]='?') and (s[n-i+1]='?') then
             begin
                 s[i]:='A';
                 s[n-i+1]:='A';
             end;
        if (s[i]<>'?') and (s[n+1-i]<>'?') and (s[i]<>s[n+1-i]) then
        begin
            write(-1);exit;
        end;
       end;
       writeln(s);
end;
begin
    assign(input, 'xaudx583.inp');reset(input);
    assign(output,'xaudx583.out');rewrite(output);
    readln(t);
    for i:=1 to t do
        giai;
end.
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page:  Lớp học Code Sky
Group FB1:  Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2:  Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Sáu, 13 tháng 1, 2023
xaudx583 pascal
Đăng ký:
Đăng Nhận xét (Atom)
 
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.