Học tại trường Chưa có thông tin
Đến từ Chưa có thông tin , Chưa có thông tin
Số lượng câu hỏi 0
Số lượng câu trả lời 58
Điểm GP 74
Điểm SP 66

Người theo dõi (12)

Cao ngocduy Cao
KenLy
lê chí hiếu

Đang theo dõi (1)


Câu trả lời:

Lâu rồi ko lên hoc24, vừa lên thấy bài hay ngay mới hay chứ

Thuật toán:

t=1 thì ko nói rồi do dễ quá

Khi t=2 thì ta có 2 biến dem0 và dem1 để giữ số các số 0 và 1

Nếu dem1<vt cần tìm thì số đó ko thể là số 1=>writeln(0)

Ngược lại thì số đó là 1=>writeln(1)

Code:

Program kth;
uses crt;
var n,i,t,x,q,dem1,dem0:integer;
    a:array[1..100000] of Byte;
    f1,f2:text;
Begin
    clrscr;
    assign(f1,'kth.inp'); reset(f1);
    assign(f2,'kth.out'); rewrite(f2);
    read(f1,n,q);
    for i:=1 to n do
        begin
            read(f1,a[i]);
            dem1:=dem1+ord(a[i]=1);
            dem0:=dem0+ord(a[i]=0);
        end;
    for i:=1 to q do
        begin
            read(f1,t,x);
            case t of
                 1:begin
                       if a[x]=1 then
                          begin
                              dec(dem1); inc(dem0);
                          end
                       else
                          begin
                              inc(dem1); dec(dem0);
                          end;
                       a[x]:=1-a[x];
                   end;
                 2:writeln(f2,1*ord(dem1>=x)+0*ord(dem1<x));
            end;
        end;
    Close(f1);
    close(f2);
End.

*Note:ord(bool) giống như khi làm trong C++,tức:

-Khi bool=true thì ra 1

-Khi bool=false thì ra 0