自学内容网 自学内容网

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)!