torus711 のアレ

主に競技プログラミングの問題について書きます

AtCoder Regular Contest #014, B : あの日したしりとりの結果を僕達はまだ知らない。

解法

しりとりのルールをそのまま実装するだけです。

コード

#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;
}