Submission #1164571

#TimeUsernameProblemLanguageResultExecution timeMemory
1164571ThanhsBroken Device (JOI17_broken_device)C++20
0 / 100
0 ms320 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; #define name "TENBAI" #define fi first #define se second #define endl '\n' #define setmin(x, y) x = min((x), (y)) #define setmax(x, y) x = max((x), (y)) #define sqr(x) ((x) * (x)) mt19937 hdp(69420); int rand(int l, int r){return l + ((hdp() % (r - l + 1)) + r - l + 1) % (r - l + 1);} vector<int> P(150); bool bl[150]; void Anna(int n, long long x, int k, int p[]) { iota(P.begin(), P.end(), 0); shuffle(P.begin(), P.end(), mt19937(69420)); for (int i = 0; i < k; i++) bl[p[i]] = 1; int cr = 0, L = (x ? __lg(x) : 0); for (int i = 0; i < L; i++) { while (1) { assert(cr < n); if (cr + 1 < n && !bl[P[cr]] && !bl[P[cr + 1]] && (x >> i & 3) == 3) { Set(P[cr], 1), Set(P[cr + 1], 1); break; } if (!bl[P[cr + (x >> i & 1)]]) { Set(P[cr + (x >> i & 1)], 1); break; } cr += 2; } cr += 2; } }
#include "Brunolib.h" #include <bits/stdc++.h> using namespace std; #define name "TENBAI" #define fi first #define se second #define endl '\n' #define setmin(x, y) x = min((x), (y)) #define setmax(x, y) x = max((x), (y)) #define sqr(x) ((x) * (x)) mt19937 hdp(69420); int rand(int l, int r){return l + ((hdp() % (r - l + 1)) + r - l + 1) % (r - l + 1);} vector<int> P(150); bool bl[150]; long long Bruno(int n, int a[]) { iota(P.begin(), P.end(), 0); shuffle(P.begin(), P.end(), mt19937(69420)); long long res = 0, cr = 1; for (int i = 0; i < n; i++) { if (a[i] && a[i + 1]) { res += 3 * cr, cr *= 4; } else if (a[i]) cr *= 2; else res += cr, cr *= 2; } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...