AtCoder Grand Contest 035 A - XOR Circle
円環を考えるのではなく、vectorの先頭の前に末尾の値を、vectorの末尾の後に先頭の値を入れてその後に両隣の排他的論理和がその値に等しいかを調べてループを回しましたが、うまくはいかず、いくつかのテストケースで落ちてしまいました。
このコードのどこに問題があるのかお分かりの方にご教授いただきたいです。
c++
1#include <bits/stdc++.h> 2using namespace std; 3 4int main() { 5 long long N; 6 cin >> N; 7 vector<long long> A(N); 8 for(int i=0; i<N; i++) cin >> A[i]; 9 A.push_back(A[0]); 10 A.insert(A.begin(), A[N-1]); 11 12 bool flg = true; 13 for(int i=1; i<N+1; i++) { 14 if((A[i-1] ^ A[i+1]) != A[i]) flg = false; 15 } 16 cout << (flg ? "Yes" : "No") << endl; 17} 18
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。