var n,i,p,q,t:longint;
s:string;
d,e:array['?'..'Z'] of longint;
procedure nhap;
begin
readln(n);
readln(s);
end;
function maxx(a,b,c,d:longint):longint;
var m:longint;
begin
m:=a;
if b>m then m:=b;
if c>m then m:=c;
if d>m then m:=d;
exit(m);
end;
procedure xuat;
begin
for i:=1 to n do
begin
if s[i]='?' then
begin
if e['A']>0 then
begin
s[i]:='A';dec(e['A']);
end
else if e['G']>0 then
begin
s[i]:='G';dec(e['G']);
end
else if e['C']>0 then
begin
s[i]:='C';dec(e['C']);
end
else if e['T']>0 then
begin
s[i]:='T';dec(e['T']);
end;
end;
end;
writeln(s);
end;
procedure giai;
begin
for i:=1 to n do
inc(d[s[i]]);
p:=maxx(d['A'],d['G'],d['T'],d['C']);
q:=4*p-d['A']-d['G']-d['C']-d['T'];
// writeln(p,' ',q);
if q>d['?'] then
writeln('===')
else
begin
t:=d['?']-q;
// writeln(t);
if t mod 4<>0 then
writeln('===')
else
begin
e['A']:=p-d['A']+ t div 4;
e['G']:=p-d['G']+ t div 4;
e['C']:=p-d['C']+ t div 4;
e['T']:=p-d['T']+ t div 4;
//writeln(e['A'],' ',e['G'],' ',e['C']);
xuat;
end;
end;
end;
begin
// assign(input,'a.inp');reset(input);
// assign(output,'a.out');rewrite(output);
nhap;
//maxx;
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ứ Tư, 27 tháng 4, 2022
XAUDADEP 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.