问题标题: 酷町堂:2801 help

0
0
已解决
汤启恩
汤启恩
新手光能
新手光能

题目描述 Description

现在有一个长度为N的字符串,全部由大写字母组成,每次可以从字符串的开头或者结尾挑选一个字符,加到一个新字符串后面,新字符串初始是空串,被挑选的字符要在原串里删除。要使最终的新字符串字典序最大,求出这个字典序最大的新字符串。

字典序是单词按字母顺序排列的方法。例如,“B"的字典序大于"A”;“ABD"的字典序大于"ABC”。

输入描述 Input Description

第一行,一个整数,N
接下来N行,每行一个大写字母

输出描述 Output Description

输出字典序最大的新字符串

样例输入 Sample Input

6 A C D B C B

样例输出 Sample Output

BCBDCA

数据范围及提示 Data Size & Hint

1≤N≤10000000

 

附上50分代码:

#include<bits/stdc++.h>
using namespace std;
string a[10000001];
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int i=1,j=n;
    while(i<=j){
        if(a[i]>a[j]){
            cout<<a[i];
            i++;
        }
        else{
            cout<<a[j];
            j--;
        }
    }
    return 0;
}

 


0
0
0
0
0
0
我要回答