SRM 471 EllyPlaylists

class EllysPlaylists {
public:
  int countPlaylists(vector <string> songs, int K) {
    int ret = 0;
    vector<string>::iterator it = songs.begin();
    while( it != songs.end() ){
	ret += seq( *it, K, 1, songs );
	it++;	
    }
    return ret;
  }

  int seq(string song, int K, int n, vector<string> songs){
    int ret = 0;
    int len = song.size();
    string suffix = song.substr( len - 3 );
    if( K == n ) return 1;
    vector<string>::iterator it = songs.begin();
    while( it != songs.end() ){
	string prefix = (*it).substr(0, 3);
	if( suffix == prefix ) ret += seq( *it, K, n + 1, songs);
	++it;
    }
    return ret;
  }
};

ここまで書いたところで鯖落ち.CASE5が延々と終了しなくなってるのでこのままだと駄目.それ以外はPASSしていた.修正したいが問題もみれないので今日はここまでにする.