题解,求关注
2024-07-10 18:33:58
发布于:浙江
13阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+10;
int n,m,t;
struct node{
char s;
int op;
inline void input(){
scanf(" %c",&s);
}
inline void output(){
printf("%c",s);
}
}a[maxn];
int main(){
//freopen("B.in","r",stdin);
//freopen("B.out","w",stdout);
scanf("%d%d",&n,&m);
//a数组读入,并标记
for(int i=1;i<=n;i++){
a[i].input();
a[i].op=1;
}
//反转a数组
reverse(a+1,a+n+1);
//b数组读入,并标记
for(int i=n+1;i<=n+m;i++){
a[i].input();
a[i].op=2;
}
//算出最终操作次数
scanf("%d",&t);
t=min(t,n+m-1);
//操作
for(int i=1;i<=t;i++){
//从右往左一次遍历
for(int j=n+m;j>=2;j){
//符合条件
if(a[j].op==2&&a[j-1].op==1){
swap(a[j],a[j-1]);
j-=2;
}
else j--;
}
}
for(int i=1;i<=n+m;i++)a[i].output();
return 0;
}
全部评论 1
兄弟,不要再陈臻武月栖沉梦了
2024-07-10 来自 广东
0好爽
2024-07-11 来自 广东
0
有帮助,赞一个