Thứ Tư, 27 tháng 4, 2022

XAUDADEP Pascal

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.

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.