Entries
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
新しい記事を書く事で広告が消せます。
コメント
コメントの投稿
トラックバック
- トラックバック URL
- http://rsujskf.blog32.fc2.com/tb.php/2199-d6606bc1
- この記事にトラックバックする(FC2ブログユーザー)
Source
TopCoder SRM531 DIV2 EASY (250pt)
Problem Statement
問題概要
50要素以下の整数の配列が与えられる.(各要素は1以上1000以下)
順番を自由に入れ替えて,昇順ソートされていないような,辞書順最小のものを求める問題.
存在しないならそれを指摘する.
解法
sortしてから1回next_permutationする.
next_permutationしないなら,最後から見て,隣り合う値が違う最初の場所をスワップしてあげれば良い.
存在しないのは,すべての要素が同じ値の時.
C++によるスパゲッティなソースコード
// #includeとusing namespace std;は略
class UnsortedSequence {
public:
vector <int> getUnsorted(vector <int> s) {
vector<int> em;
sort(s.begin(), s.end());
if(s[0]==s[s.size()-1]) return em;
next_permutation(s.begin(), s.end());
return s;
}
};
コメント
コメントの投稿
トラックバック
- トラックバック URL
- http://rsujskf.blog32.fc2.com/tb.php/2199-d6606bc1
- この記事にトラックバックする(FC2ブログユーザー)