AcWing 3586. 怪异的洗牌
原题链接
简单
作者:
little奔奔
,
2024-03-04 11:49:24
,
所有人可见
,
阅读 15
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k ,j = 0;
cin >> n >> k;
int a[11][n+1];
for(int i = 1 ; i <=n; i++)
a[0][i] = i;
while(k--){
int s , k = 1;
cin >> s;
j++;
for (int i = s + 1; i <= n; i++)
a[j][k++] = a[j-1][i];
for(int i = 1; i < s + 1;i++)
a[j][k++] = a[j-1][i];
int temp = 0;
if(n % 2 == 1){
temp = (n-1)/2;
}else{
temp = n/2;
}
int i1 = 1, i2 = temp;
while(i1 < i2){
swap(a[j][i1],a[j][i2]);
i1++;
i2--;
}
}
for(int i = 1 ; i <=n; i++)
cout << a[j][i] << " ";
cout << endl;
return 0;
}