三合一


提交程序

分数: 100 (部分)
时间限制: 1.0s
内存限制: 128M

作者:
题目类型

你有一個長度為 \(n\) 的二元字串 \(a\)

在一次操作中,你需要選取一個 \(i\) , 將 \(a_i, a_{i+1}, a_{i+2}\) 合併成為 \(a_i\oplus a_{i+1}\oplus a_{i+2}\) ,其中 \(\oplus\) 代表 xor 運算 ( https://en.wikipedia.org/wiki/Bitwise_operation#XOR )

進行完操作後陣列的長度會減少 \(2\) , \(a_i\) 的值會更新為 \(a_i\oplus a_{i+1}\oplus a_{i+2}\) , 並刪除 \(a_{i+1}\) 和 \(a_{i+2}\) ,其餘由後面的值向前遞補

題目保證經過數次操作後,陣列長度會剩下 \(1\)

請問是否能讓最後陣列中的值為 \(0\) ?

Input

第一行包含一個整數 \(n\) , \(n\) 代表陣列的長度。

\(3\le n\le 3\cdot 10^5, n\) 為奇數

第二行包含一個二元字串 \(a\) 。

Output

輸出一行,如果最後陣列的值有辦法是 \(0\) 則輸出 \(YES\) (需大寫)

反之則輸出 \(NO\)

Constraints

第 \(1\) 組測資, \(n\le 19\)。\((40\text{%})\)

第 \(2\) 組測資, 沒有其他限制。\((60\text{%})\)

Sample Input 1
3
110
Sample Output 1
YES
Sample Input 2
11
11010101101
Sample Output 2
NO

评论

目前没有评论。