結果

問題 No.2061 XOR Sort
ユーザー 👑 NachiaNachia
提出日時 2022-08-26 21:36:08
言語 C++17
(gcc 13.2.0 + boost 1.83.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 958 bytes
コンパイル時間 646 ms
コンパイル使用メモリ 72,940 KB
最終ジャッジ日時 2024-04-21 23:34:54
合計ジャッジ時間 1,785 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
main.cpp:10:13: error: 'uint32_t' does not name a type
   10 | using u32 = uint32_t;
      |             ^~~~~~~~
main.cpp:7:1: note: 'uint32_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
    6 | #include <atcoder/modint>
  +++ |+#include <cstdint>
    7 | 
main.cpp:12:13: error: 'uint64_t' does not name a type
   12 | using u64 = uint64_t;
      |             ^~~~~~~~
main.cpp:12:13: note: 'uint64_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
main.cpp: In function 'int main()':
main.cpp:23:12: error: 'u64' was not declared in this scope; did you mean 'i64'?
   23 |     vector<u64> A(N); rep(i,N) cin >> A[i];
      |            ^~~
      |            i64
main.cpp:23:15: error: template argument 1 is invalid
   23 |     vector<u64> A(N); rep(i,N) cin >> A[i];
      |               ^
main.cpp:23:15: error: template argument 2 is invalid
main.cpp:23:40: error: invalid types 'int[int]' for array subscript
   23 |     vector<u64> A(N); rep(i,N) cin >> A[i];
      |                                        ^
main.cpp:24:12: error: template argument 2 is invalid
   24 |     set<u64> S(A.begin(), A.end());
      |            ^
main.cpp:24:12: error: template argument 3 is invalid
main.cpp:24:18: error: request for member 'begin' in 'A', which is of non-class type 'int'
   24 |     set<u64> S(A.begin(), A.end());
      |                  ^~~~~
main.cpp:24:29: error: request for member 'end' in 'A', which is of non-class type 'int'
   24 |     set<u64> S(A.begin(), A.end());
      |                             ^~~
main.cpp:24:34: error: expression list treated as compound expression in initializer [-fpermissive]
   24 |     set<u64> S(A.begin(), A.end());
      |                                  ^
main.cpp:25:19: error: template argument 2 is invalid
   25 |     A = vector<u64>(S.begin(), S.end());
      |                   ^
main.cpp:25:23: error: request for member 'begin' in 'S', which is of non-class type 'int'
 

ソースコード

diff #

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <set>
#include <atcoder/modint>

using namespace std;
using i32 = int32_t;
using u32 = uint32_t;
using i64 = int64_t;
using u64 = uint64_t;
#define rep(i,n) for(int i=0; i<(int)(n); i++)


const i64 INF = 1001001001001001001;
using modint = atcoder::static_modint<998244353>;



int main(){
    int N; cin >> N;
    vector<u64> A(N); rep(i,N) cin >> A[i];
    set<u64> S(A.begin(), A.end());
    A = vector<u64>(S.begin(), S.end());
    modint ans = 1;
    rep(d,30){
        u64 D = 1ull << d;
        for(u64 a : A){
            u64 l = (a^D)&~(D-1);
            u64 r = l+D;
            if(S.lower_bound(l) != S.lower_bound(r)){ ans *= 2; break; }
        }
    }
    cout << ans.val() << '\n';
    return 0;
}


struct ios_do_not_sync{
    ios_do_not_sync(){
        std::ios::sync_with_stdio(false);
        std::cin.tie(nullptr);
    }
} ios_do_not_sync_instance;


0