0
点赞
收藏
分享

微信扫一扫

Tinkoff Challenge - Final Round (Codeforces Round #414, rated, Div. 1 + Div. 2) C. Naming Company

求索大伟 2022-04-30 阅读 47
    #include <iostream>  
    #include <stdio.h>  
    #include <string.h>   
    #include <stack>  
    #include <queue>   
    #include <map>  
    #include <set>  
    #include <vector>  
    #include <math.h>  
    #include <bitset>  
    #include <algorithm>  
    #include <climits>  
    using namespace std;
    const int N=3e5+10;
    char s[N],t[N],res[N];int n;
    bool cmp(char x,char y){return x>y;}
    int main(){
        cin>>s+1>>t+1;
        n=strlen(s+1);
        sort(s+1,s+1+n);
        sort(t+1,t+1+n,cmp);
        int l=1,r=n,now=1,pos=-1;
        int sl=1,tl=1,ns=n/2,nt=n/2;
        if(n%2) ns++;
        // cout<<ns<<" "<<nt<<endl;
        for(int i=1;i<=n;i++){
            if(s[sl]>=t[tl]){pos=i;break;}
            if(i%2==1) res[l++]=s[sl++];
            else res[l++]=t[tl++];
        }
        if(pos%2==1){
            for(int i=n;i>=l;i-=2) res[i]=s[ns--];
            for(int i=n-1;i>=l;i-=2) res[i]=t[nt--];
        }else{
            // cout<<n<<endl;
            for(int i=n;i>=l;i-=2) res[i]=t[nt--];
            for(int i=n-1;i>=l;i-=2) res[i]=s[ns--];
        }
        for(int i=1;i<=n;i++) cout<<res[i];cout<<endl;
    }
举报

相关推荐

0 条评论