Submission #1078722

#TimeUsernameProblemLanguageResultExecution timeMemory
1078722someoneBroken Device (JOI17_broken_device)C++14
0 / 100
60 ms2924 KiB
#include "Annalib.h" #include <bits/stdc++.h> #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() using i64 = long long; using namespace std; const int D = 60; i64 b[D], id[D]; void insert(i64 x, int idx) { for(int i = D-1; i >= 0; i--) if(x & (1ll << i)) { if(b[i] == 0) { b[i] = x; id[i] = idx; return; } x ^= b[i]; } } void Anna(int N, long long X, int K, int P[]) { for(int i = 0; i < D; i++) b[i] = 0; vector<int> broken(N); for(int i = 0; i < K; i++) broken[P[i]] = 1; mt19937_64 rng(42); vector<i64> val(N); for(int i = 0; i < N; i++) { val[i] = rng(); if(!broken[i]) insert(val[i], i); } vector<int> ans(N); for(int i = D-1; i >= 0; i--) { if(X & (1 << i)) { X ^= b[i]; ans[id[i]] = 1; } } for(int i = 0; i < N; i++) Set(i, ans[i]); }
#include "Brunolib.h" #include <bits/stdc++.h> #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() using i64 = long long; using namespace std; long long Bruno( int N, int A[] ){ mt19937_64 rng(42); i64 X = 0; for(int i = 0; i < N; i++) { int val = rng(); if(A[i]) X ^= val; } return X; }
#Verdict Execution timeMemoryGrader output
Fetching results...