天天看點

AtCoder Regular Contest 069 D

Time limit : 2sec / Memory limit : 256MB

Score : 500 points

Snuke, who loves animals, built a zoo.

There are N animals in this zoo. They are conveniently numbered 1 through N, and arranged in a circle. The animal numbered i(2≤i≤N−1) is adjacent to the animals numbered i−1 and i+1. Also, the animal numbered 1 is adjacent to the animals numbered 2 and N, and the animal numbered N is adjacent to the animals numbered N−1 and 1.

There are two kinds of animals in this zoo: honest sheep that only speak the truth, and lying wolves that only tell lies.

Snuke cannot tell the difference between these two species, and asked each animal the following question: "Are your neighbors of the same species?" The animal numbered i answered si. Here, if si is <code>o</code>, the animal said that the two neighboring animals are of the same species, and if si is <code>x</code>, the animal said that the two neighboring animals are of different species.

More formally, a sheep answered <code>o</code> if the two neighboring animals are both sheep or both wolves, and answered <code>x</code> otherwise. Similarly, a wolf answered <code>x</code> if the two neighboring animals are both sheep or both wolves, and answered <code>o</code> otherwise.

Snuke is wondering whether there is a valid assignment of species to the animals that is consistent with these responses. If there is such an assignment, show one such assignment. Otherwise, print <code>-1</code>.

3≤N≤105

s is a string of length N consisting of <code>o</code> and <code>x</code>.

The input is given from Standard Input in the following format:

If there does not exist an valid assignment that is consistent with s, print <code>-1</code>. Otherwise, print an string t in the following format. The output is considered correct if the assignment described by t is consistent with s.

t is a string of length N consisting of <code>S</code> and <code>W</code>.

If ti is <code>S</code>, it indicates that the animal numbered i is a sheep. If ti is <code>W</code>, it indicates that the animal numbered i is a wolf.

For example, if the animals numbered 1, 2, 3, 4, 5 and 6 are respectively a sheep, sheep, sheep, wolf, wolf, and sheep, it is consistent with their responses. Besides, there is another valid assignment of species: a wolf, sheep, wolf, sheep, wolf and wolf.

Let us remind you: if the neiboring animals are of the same species, a sheep answers <code>o</code> and a wolf answers <code>x</code>. If the neiboring animals are of different species, a sheep answers <code>x</code> and a wolf answers <code>o</code>.

AtCoder Regular Contest 069 D

Print <code>-1</code> if there is no valid assignment of species.

題意:n隻動物從1到n圍成一個圈,每隻動物要麼是羊要麼是狼。每隻動物會說出一個字母,說'o'表示它兩邊動物種類相同,說'x'表示不同。但羊是說真話,狼是說反話。求出這n隻動物的種類。

分析:模拟一下就可以了,不過這個模拟比較大!

下面給出AC代碼: