Submission #990665

#TimeUsernameProblemLanguageResultExecution timeMemory
990665efishelBroken Device (JOI17_broken_device)C++17
85 / 100
23 ms2648 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using vll = vector <ll>; void Anna (int n, ll x, int k, int p[]) { vector <char> broken(n, false); for (ll i : vll(p, p+k)) broken[i] = true; vll th(38, -15); for (ll i = 0; i < 38; i++) { th[i] = x%3; x /= 3; } // 00 none // 01 0 // 10 1 // 11 2 ll at = 0; ll i = 0; vll set(n, 0); for (; i < n; i += 2) { if (at == 38) break; switch (th[at]) { case 0: if (broken[i+1]) break; set[i] = 0; set[i+1] = 1; at++; break; case 1: if (broken[i]) break; set[i] = 1; set[i+1] = 0; at++; break; case 2: if (broken[i] || broken[i+1]) break; set[i] = 1; set[i+1] = 1; at++; break; default: assert(false); } } for (ll i = 0; i < n; i++) { Set(i, set[i]); } }
#include "Brunolib.h" #include <bits/stdc++.h> using namespace std; using ll = long long; using vll = vector <ll>; ll Bruno (int n, int a[]) { vll ve(a, a+n); vll th(38); ll at = 0; for (ll i = 0; i < n; i += 2) { if (at == 38) break; if (ve[i] == 0 && ve[i+1] == 0) continue; th[at++] = ( ve[i] == 0 && ve[i+1] == 1 ? 0 : ve[i] == 1 && ve[i+1] == 0 ? 1 : ve[i] == 1 && ve[i+1] == 1 ? 2 : -15 ); } ll ans = 0; ll thr = 1; for (ll i = 0; i < 38; i++) { ans += th[i]*thr; thr *= 3; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...