結果
問題 | No.2024 Xer |
ユーザー |
![]() |
提出日時 | 2022-07-29 22:19:40 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 57 ms / 2,000 ms |
コード長 | 2,515 bytes |
コンパイル時間 | 2,360 ms |
コンパイル使用メモリ | 202,884 KB |
最終ジャッジ日時 | 2025-01-30 15:26:10 |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 47 |
ソースコード
#include <bits/stdc++.h>using namespace std;typedef long long ll;template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return true; } return false; }template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return true; } return false; }#define all(x) (x).begin(),(x).end()#define fi first#define se second#define mp make_pair#define si(x) int(x.size())const int mod=998244353,MAX=300005,INF=1<<30;int main(){std::ifstream in("text.txt");std::cin.rdbuf(in.rdbuf());cin.tie(0);ios::sync_with_stdio(false);int N,X;cin>>N>>X;vector<int> A(N);for(int i=0;i<N;i++) cin>>A[i];sort(all(A));int k=-1;for(int i=30;i>=0;i--){if(X&(1<<i)){k=i;break;}}if(X==0){for(int i=0;i+1<N;i++){if(A[i]==A[i+1]){cout<<"No\n";return 0;}}cout<<"Yes\n";return 0;}int i=0;while(i<N){int j=i;while(j<N){if((A[i]>>(k+1))==(A[j]>>(k+1))) j++;else break;}if(j-i>=2){bool ok=false;vector<int> S,T;for(int x=i;x<j;x++){if(A[x]&(1<<k)) S.push_back(A[x]);else T.push_back(A[x]);}if(si(S)==si(T)||si(S)==si(T)+1){vector<int> B;for(int t=0;t<si(T);t++){B.push_back(S[t]);B.push_back(T[t]);}if(si(S)>si(T)) B.push_back(S.back());bool check=true;for(int a=0;a<si(B)-1;a++){check&=((B[a]^X)<B[a+1]&&B[a]<(B[a+1]^X));}if(check) ok=true;}if(si(S)==si(T)||si(S)+1==si(T)){vector<int> B;for(int t=0;t<si(S);t++){B.push_back(T[t]);B.push_back(S[t]);}if(si(S)<si(T)) B.push_back(T.back());bool check=true;for(int a=0;a<si(B)-1;a++){check&=((B[a]^X)<B[a+1]&&B[a]<(B[a+1]^X));}if(check) ok=true;}if(!ok){cout<<"No\n";return 0;}}else{}i=j;}cout<<"Yes\n";}