E. Median String (26进制)

版权声明:转载注明下出处就行了。 https://blog.csdn.net/LJD201724114126/article/details/88958502

题目链接:https://codeforces.com/contest/1144/problem/E

题意:给你一个26进制的字符串,找出它们的中间子串。

题解:26进制转换。

#include<bits/stdc++.h>

using namespace std;

int ans[200010];

string s,t;
int main()
{

    int n;
    cin>>n>>s>>t;

    for(int i=0;i<n;i++)
        ans[i]=(s[i]-'a')+(t[i]-'a');

    for(int i=n-1;i;i--)
    {
        if(ans[i]>=26){
            ans[i]-=26;
            ans[i-1]++;
        }
    }

    for(int i=0;i<n;i++) ///末尾一定可以整除,因为题目要求了
    {
        if(ans[i]%2==0){
            ans[i]/=2;
        }
        else{
            ans[i]/=2;
            ans[i+1]+=26;
        }
    }

    for(int i=0;i<n;i++)
    {
        printf("%c",ans[i]+'a');
    }
    puts("");

    return 0;
}

猜你喜欢

转载自blog.csdn.net/LJD201724114126/article/details/88958502
今日推荐