package main import . "fmt" func main() { var n int Scan(&n) a := make([]int, n) for i := range a { Scan(&a[i]) } const T = (1 << 12)-1 ans := 0 col := make([]byte, n) for i := range col { col[i] = 'B' } tmp := make([]byte, n) for w := 0; w <= T; w++ { b := w ^ T ok := true bb, ww := 0, 0 for i, e := range a { if (e&w)==(e&T) { tmp[i] = 'W' ww |= e continue } if (e&b)==(e&T) { tmp[i] = 'B' bb |= e continue } ok = false } if ok && (ww&bb) == 0 { if ww*bb > ans { ans = ww*bb copy(col, tmp) } } } Println(ans) Println(string(col)) }