SRM518 Div1 Easy(250), Div2 Medium(500) LargestSubsequence

LargestSubsequence

最大の文字を加えていく。最大の文字は最左のものを選び、次の文字は最初に選んだ文字より右のものから選ぶ。

#include <string>
#include <algorithm>
using namespace std;

class LargestSubsequence{public:
string getLargest( string s )
{
    int n = (int)s.size();
    string ans;
    for ( int p=0; p<n; )
        p = max_element(s.begin()+p,s.end())-s.begin(),
        ans += s[p++];
    return ans;
}};