【问题描述】
师徒四人一路闯荡,来到了大都市—澳门。八戒被一只喜欢打牌的小妖拦住去路 小妖与八戒玩起了扑克。前几把八戒赢得甚是开心岂料一切都是陷阱,最后一把净把碎银子悉数输了出去。八戒赶忙向悟空求救…
扑克玩法:现有一副扑克有 2n 张,编号为1,2,…,n,n+1,…,2n,每次洗牌之后扑克次序变为:n+1,1,n+2,2,n+3,3,.,2n,n,现已知n与洗牌次数m,请说出m次洗牌后扑克牌的顺序。(0<n<100,0<m<100)
输入:两个整数,第一个整数n,表示扑克牌的数量的一半,第二个整数 m表示洗牌次数。
输出:2n 个整数,表示经过m次洗牌后,当前扑克牌的顺序。
【样例输入】
4 2
【样例输出】
7 5 3 1 8 6 4 2
#include<bits/stdc++.h>
using namespace std;
int a[10000005],b[10000005],c[10000005];
int main(){
int n,m;
cin>>n>>m;
int s=n*2;
for(int i=1;i<=n;i++)a[i]=i;
for(int i=n+1;i<=s;i++)
{
for(int j=1;j<=n;j++) b[j]=i;
}
if(m*2==s)
{
for(int i=s;i>=1;i--)cout<<i<<" ";
return 0;
}
for(int i=1;i<=m;i+2)
{
c[i]=b[i];
}
for(int i=1;i<=m;i+2)
{
c[i]=a[i];
}
for(int i=1;i<=s;i++)cout<<c[i];
return 0;
}
}