type Pair struct { a, b int } type Pairs []Pair func(arr Pairs) Less(i, j int) bool { return arr[i].a > arr[j].a } func(arr Pairs) Swap(i, j int) { arr[i], arr[j] = arr[j], arr[i] } func(arr Pairs) Len() int { returnlen(arr) } funcsolve(in *bufio.Reader) { readInt(in) a := readArrInt(in) b := make(Pairs, len(a)) for i, v := range a { b[i].a = v b[i].b = i } sort.Sort(b) for i, v := range b { a[v.b] = i } for _, v := range a { fmt.Printf("%d ", v+1) } fmt.Println() } funcmain() { in := bufio.NewReader(os.Stdin) T := readInt(in) for i := 0; i < T; i++ { solve(in) } }
funcsolve(in *bufio.Reader) { n := readInt(in) s, _ := in.ReadString('\n') s = strings.Trim(s, " \r\n\t") cnt := 0 for i := 0; i < len(s)/2; i++ { if i == n-1-i { break } if s[i] != s[n-1-i] { cnt++ } } for i := 0; i < cnt; i++ { fmt.Print("0") } if n%2 == 0 { for i := cnt; i <= n-cnt; i++ { if (i-cnt)%2 == 0 { fmt.Print("1") } else { fmt.Print("0") } } } else { for i := cnt; i <= n-cnt; i++ { fmt.Print("1") } } for i := n - cnt + 1; i < n+1; i++ { fmt.Print("0") } fmt.Println() } funcmain() { in := bufio.NewReader(os.Stdin) T := readInt(in) for i := 0; i < T; i++ { solve(in) } }