Palindrome Game (hard version)
题号:NC236137
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

有一个01串。两个人在一起做游戏,ALICE先手,Bob后手,他们可以从以下两种操作中选一个:
1. 任选某个为0的位置将其变为1,代价为1。
2. 若该01串目前不为回文串,且上一个操作不为操作2的情况下可以将整个01串翻转。

代价少的人获胜,否则平局。

输入描述:

第一行一个整数,表示数据组数。
对于每组数据,第一行一个整数,表示01串长度。
第二行是长度为n的01串。

输出描述:

对于每组数据,如果Alice获胜,输出"ALICE";如果Bob获胜,输出"BOB";平局输出"DRAW"。
示例1

输入

复制
3
3
110
2
00
4
1010

输出

复制
ALICE
BOB
ALICE

备注:

原题链接:https://codeforces.com/contest/1527/problem/B2