小红的排列构造
小红的排列构造
https://ac.nowcoder.com/acm/contest/80742/B
小红的排列构造
标签: 模拟 构造
难度: 一般
思路:
将数组的前n-k
位输出,将n-k+2
位向后到n
位先输出,最后输出n-k+1
位,就能保证汉明距离为k了,并且需要特判k==1
和k>n
,在这两种情况下,无解。
示例:
#include<bits/stdc++.h>
using namespace std;
const int N =100010;
int n,k;
int a[N],b[N];
int main()
{
cin>>n>>k;
if(k==1||k>n)
return cout<<-1,0;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n-k;i++)
cout<<a[i]<<' ';
for(int i=n-k+2;i<=n;i++)
cout<<a[i]<<" ";
cout<<a[n-k+1];
return 0;
}