1 条题解

  • 0
    @ 2025-4-7 21:38:01

    Pascal :

    var
      a:array [0..10001] of longint;
      n,m,i,p,q:longint;
    
    procedure swap(var a,b:longint);
    var
      t:longint;
    begin
      t:=a;
      a:=b;
      b:=t;
    end;
    
    procedure kp(l,r:longint);
    var
      i,j,x:longint;
    begin
      i:=l;
      j:=r;
      x:=a[(l+r) div 2];
      repeat
        while a[i]<x do inc(i);
        while x<a[j] do dec(j);
        if i<=j then
          begin
            swap(a[i],a[j]);
            inc(i);
            dec(j);
          end;
      until i>j;
      if i<r then kp(i,r);
      if l<j then kp(l,j);
    end;
    
    begin
      readln(n);
      readln(m);
      for i:=1 to n do
        read(a[i]);
      for i:=1 to m do
        begin
          p:=n-1;
          while a[p]>a[p+1] do dec(p);
          q:=p+1;
          while (q<=n) and (a[q]>a[p]) do
            inc(q);
            dec(q);
            swap(a[p],a[q]);
            kp(p+1,n);
        end;
      for i:=1 to n-1 do
        write(a[i],' ');
      writeln(a[n]);
    end.
    
    • 1

    信息

    ID
    1784
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者