概要
楽曲のファイルに 1.mp3, 2.mp3, ..., 10.mp3, ... というように名前を付けている。
これらを、ファイル名の辞書順比較で小さい順にプレイリストを作る MP3 プレイヤーに入れる。
作成されるプレイリストを求めよ。
(曲数が 50 を超える場合は最初の 50 曲のみについて示せ)
解法
ファイル名となる文字列を全て生成してソート。
コード
typedef vector<string> VS; typedef ostringstream OSS; #define REP( i, m, n ) for ( int i = (int)( m ); i < (int)( n ); ++i ) #define ALL( c ) (c).begin(), (c).end() #define PB( n ) push_back( n ) class FoxAndMp3Easy { public: vector <string> playList( int n ) { VS res; REP( i, 0, n ) { res.PB( genStr( i + 1 ) ); } sort( ALL( res ) ); if ( 50 < res.size() ) { res.resize( 50 ); } return res; } string genStr( int n ) { OSS oss; oss << n; string res = oss.str(); return res + ".mp3"; } };