atcoder#ARC069B. [ABC055D] Menagerie

[ABC055D] Menagerie

题目描述

すぬけくんは動物が好きなので動物園を作りました。

この動物園では 1,2,3, ..., N 1,2,3,\ ...,\ N の番号を割り振られた N N 匹の動物が円環状に並べられています。 i (2iN1) i\ (2≦i≦N-1) 番の動物は i1 i-1 番の動物と i+1 i+1 番の動物と隣り合っています。また、1 1 番の動物は N N 番の動物と 2 2 番の動物と隣り合っており、N N 番の動物は N1 N-1 番の動物と 1 1 番の動物と隣り合っています。

動物園には本当のことしか言わない正直者の羊と、嘘しか言わない嘘つきの狼の 2 種類の動物がいます。

すぬけくんには羊と狼の区別がつかないので、それぞれの動物に両隣の動物が同じ種類かどうかを訪ねたところ、i i 番目の動物は si s_i と答えました。si s_i o ならば両隣の動物が同じ種類であると、x ならば異なる種類であると i i 番の動物が言ったことを示します。

より形式的には、羊は両隣の動物がどちらも羊あるいはどちらも狼のとき o と答え、そうでないとき x と答えます。 狼は両隣の動物がどちらも羊あるいはどちらも狼のとき x と答え、そうでないとき o と答えます。

これらの回答結果と矛盾しないような各動物の種別の割り当てが存在するか、すぬけくんは気になっています。存在するならば一例を示し、存在しないならば -1 を出力しなさい。

输入格式

入力は以下の形式で標準入力から与えられる。

N N s s

输出格式

s s と矛盾しないような各動物の種類の割当てが存在しないならば -1 を出力してください。 存在するならば以下の形式で文字列 t t を出力してください。 t t で示される割り当てが s s と矛盾しないならば正解となります。

  • t t は長さ N N SW のみからなる文字列
  • ti t_i S ならば i i 番の動物が羊であることを、W ならば狼であることを示す

题目大意

题目描述

Snuke,一个喜欢动物的人,建立了一个动物园。

一共有n个动物在动物园中,编号 1n1-n ,被按顺序围成一个圈。

有两种动物:诚实的羊只说真话,不诚实的狼只说假话。

Snuke无法区别这两种动物,他问每只动物以下问题:“你旁边的两只动物是同一种吗?”第i只动物的答案为 SiSi 。如果 SiSi 为“o”,则表示相同,“x”则相反。

此外,若羊回答“o”,相邻的生物则都是羊或都是狼,而“x”则相反。若狼回答“x”,相邻的生物则都是羊或狼,而“o”则相反。

Snuke想知道是否有一种可行的排列方式。如果有,输出这种排列。如果没有,则输出“-1”。

注:“S”表示羊,“W”表示狼。

6
ooxoox
SSSWWS
3
oox
-1
10
oxooxoxoox
SSWWSSSWWS

提示

制約

  • 3  N  105 3\ ≦\ N\ ≦\ 10^{5}
  • s s ox のみからなる長さ N N の文字列

Sample Explanation 1

例えば 1,2,3,4,5,6 1,2,3,4,5,6 番の動物がそれぞれ羊、羊、羊、狼、狼、羊であるとき発言と矛盾しません。その他、狼、羊、狼、羊、狼、狼であるようなときも矛盾しません。 両隣が同じ種類の動物のとき羊は o と発言し、狼は x と発言すること、 両隣が異なる種類の動物のとき羊は x と発言し、狼は o と発言することに注意してください。 ![b34c052fc21c42d2def9b98d6dccd05c.png](https://atcoder.jp/img/arc069/b34c052fc21c42d2def9b98d6dccd05c.png)

Sample Explanation 2

存在しない場合は -1 を出力してください。