解法
しりとりのルールをそのまま実装するだけです。
コード
#define REP( i, m, n ) for ( int i = (int)( m ); i < (int)( n ); ++i ) #define EXIST( c, e ) ( (c).find( e ) != (c).end() ) string solve() { int n; cin >> n; set<string> used; string prev; REP( i, 0, n ) { string word; cin >> word; if ( i && prev.back() != word[0] || EXIST( used, word ) ) { return i % 2 ? "WIN" : "LOSE"; } prev = word; used.insert( word ); } return "DRAW"; } int main() { cin.tie( 0 ); ios::sync_with_stdio( false ); cout << solve() << endl; return 0; }