# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1232621 | Double_Slash | Broken Device (JOI17_broken_device) | C++20 | 35 ms | 1344 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
void Anna(int N, ll X, int K, int P[]) {
mt19937 gen;
uniform_int_distribution<ull> rng(1, -1ull);
ll a[N];
for (ll &ai: a) ai = rng(gen);
for (int i = K; i--;) a[P[i]] = 0;
vector<int> basis;
for (int i = N; i--;) {
for (int j: basis) a[i] = min(a[i], a[i] ^ a[j]);
if (a[i]) basis.emplace_back(i);
}
for (int i: basis) {
if ((X ^ i) < X) X ^= i;
else a[i] = 0;
}
for (int i = N; i--;) Set(i, !!a[i]);
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
ll Bruno(int N, int A[]) {
mt19937 gen;
uniform_int_distribution<ull> rng(1, -1ull);
ll a[N];
for (ll &ai: a) ai = rng(gen);
ull x = 0;
for (int i = N; i--;) x ^= a[i] * A[i];
return x;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |