问题 I: 数字消除学校oj的题目 ac94%不知道错哪儿

给出n个数,每次你可选择相邻且相等的两个数字将其删除,你可以进行任意次上述操作,现在问你能不能将该数组完全删除 (0\leq n \leq2e50≤n≤2e5 ,保证数组元素的值在intint范围内) 如果可以输出”YES”,否则输出”NO”
输入
两行数字,第一行输入一个数字n。接下来一行有n个数字
输出
"YES" 或 "NO"
样例输入 Copy
10
1 2 2 3 4 4 3 1 2 3
样例输出 Copy
NO
提示
第一步你可以消除一对 2 数组变成1 3 4 4 3 1 2 3,
第二步你可以消除一对 4 数组变成1 3 3 1 2 3,
第三步你可以消除一对 3 数组变成1 1 2 3,
第三步你可以消除一对 1 数组变成 2 3.
显然不能被完全删除

你题目的解答代码如下:

#include <iostream>
using namespace std;

int main()
{
    int n,m,i,j=-1;
    cin >> n;
    int a[n];
    for (i = 0; i < n; i++)
    {
        cin >> m;
        if (j>-1 && m==a[j])
            j--;
        else
            a[++j] = m;
     }
    if (j==-1)
        cout << "YES";
    else
        cout << "NO";
     return 0;
}

如有帮助,望采纳!谢谢!