7.11 cf div3 C
Problem - C - Codeforces
操作
根据给定的索引数组ind和字符串c,按照一定的顺序修改字符串s中对应位置的字符。具体来说,第i次操作会修改s中索引为indi的位置的字符,将其设置为ci。
将c字符串按照从小到大排序,替换ind数组所表示的s的下标
ac代码
#include<bits/stdc++.h>
typedef long long ll;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
const ll N=1e3;
using namespace std;
int main()
{
IOS;
int t;
cin>>t;
while(t--)
{
string s,c;
int lens,lenc;
cin>>lens>>lenc;
cin>>s;
int ind[lenc];
map<int,int>mp;
for(int i=0;i<lenc;i++)
{
cin>>ind[i];
mp[ind[i]]++;
}
char p[lenc];
cin>>c;
for(int i=0;i<lenc;i++)
{
p[i]=c[i];
}
sort(p,p+lenc);
int k=0;
for(auto it:mp)
{
int x=it.first;
x--;
s[x]=p[k++];
}
for(int i=0;i<lens;i++) cout<<s[i];
cout<<endl;
}
return 0;
}
原文地址:https://blog.csdn.net/2301_80170590/article/details/140346847
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!