1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int main() { int n,t; scanf("%d %d",&n,&t); vector<int> v(n,0); for(auto &i:v) scanf("%d",&i); while(t--) next_permutation(v.begin(),v.end()); for(int i=0; i<n; i++) { printf("%d",v[i]); if(i==n-1) printf("\n"); else printf(" "); } return 0; }
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
- 1931
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者