#include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector statu(n + 1); for (int i = 1; i <= n; i++){ cin >> statu[i]; } stack sk; for (int i = 1; i <= n; i++){ if (sk.empty()){ sk.push(i); } else{ // 状态一样就都留下,不一样就抵消删掉栈顶 if (statu[i] == statu[sk.top()]){ sk.push(i); } else{ sk.pop(); } } } int ans = -1; // 遍历栈,最后留存的就是最靠前的 while (!sk.empty()){ ans = sk.top(); sk.pop(); } cout << ans << endl; return 0; }