cho mảng A gồm n phần tử nguyên dương (n<=10^5, A(i)<=10^6) -nhập ngẫu nhiên mảng A 1. Tìm kiếm 3 phần tử lớn nhất trong mảng A 2. Tìm kiếm 100 phần

cho mảng A gồm n phần tử nguyên dương (n<=10^5, A(i)<=10^6) -nhập ngẫu nhiên mảng A 1. Tìm kiếm 3 phần tử lớn nhất trong mảng A 2. Tìm kiếm 100 phần tử nhỏ nhất trong mảng A 3. Tìm kiếm 10000 phần tử nhỏ nhất A 4. Sắp xếp tăng dần A 5. Tìm đoạn liên tục có tổng nhỏ hơn 10000 dài nhất ai giúp mk với đag cần gấp ;))

0 bình luận về “cho mảng A gồm n phần tử nguyên dương (n<=10^5, A(i)<=10^6) -nhập ngẫu nhiên mảng A 1. Tìm kiếm 3 phần tử lớn nhất trong mảng A 2. Tìm kiếm 100 phần”

  1. uses crt;
    var n,i,j,vt,m,t,tong,da,cu:longint; a,b,c,d,e:array[1..100000]of longint;
    begin
    clrscr;
       write(‘n=’);readln(n);
       for i:=1 to n do
          begin
             write(‘a[‘,i,’]=’);readln(a[i]);
             b[i]:=a[i]; c[i]:=a[i]; d[i]:=a[i]; e[i]:=a[i]
          end;
       writeln(‘Cau 1:’);
       for i:=1 to 3 do
           begin
               vt:=1;
               for j:=1 to n do if a[j]>a[vt] then vt:=j;
               writeln(a[vt]); a[vt]:=low(longint);
           end;
       writeln(‘Cau 2:’);
       m:=n;
       if m>100 then m:=100;
       for i:=1 to m do
          begin
             vt:=1;
             for j:=1 to n do if b[j]<b[vt] then vt:=j;
             writeln(b[vt]); b[vt]:=high(longint);
          end;
       writeln(‘Cau 3:’);
       m:=n;
       if m>10000 then m:=10000;
       for i:=1 to m do
          begin
             vt:=1;
             for j:=1 to n do if c[j]<c[vt] then vt:=j;
             writeln(c[vt]); c[vt]:=high(longint);
          end;
       writeln(‘Cau 4:’);
       for i:=1 to n do
          for j:=i to n do
             if d[i]>d[j] then
                begin t:=d[i]; d[i]:=d[j]; d[j]:=t; end;
          for i:=1 to n do write(d[i],’ ‘); writeln;
       writeln(‘Cau 5:’);
       for i:=1 to n do
          begin
             j:=i-1;
             tong:=0;
             repeat
                inc(j);
                inc(tong,e[j]);
             until (tong>10000)or(j=n);
             if tong>=10000 then begin tong:=tong-e[j]; dec(j); end;
             if (j-i+1>cu-da+1)and(tong<10000) then begin cu:=j; da:=i; end;
          end;
       writeln(da,’=> ‘,cu);
    readln
    end.

    Bình luận

Viết một bình luận