SRM 531 Div2 Easy UnsortedSequence

問題

与えられた数列をsortされてない配列の内,最も辞書順が小さいものに並べ替える.

解答

一旦ソートし,後ろの方から読んでいき,初めて数が変わる箇所で入れ替える.

class UnsortedSequence
{
public:
  vector <int> getUnsorted(vector <int> s)
    {
      sort(s.begin(), s.end());
      int n = s.size();
      for(int i = n-2; i >= 0; i--){
        if (s[i] !=s[i+1]){
          int tmp = s[i];
          s[i] = s[i+1];
          s[i+1] = tmp;
          return s;
        }
      }
      vector<int> hoge;
      return hoge;
    }
};