Submission #1039504

#TimeUsernameProblemLanguageResultExecution timeMemory
1039504juicyBroken Device (JOI17_broken_device)C++17
0 / 100
28 ms3028 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; namespace { void set(int i, string s) { for (auto j : {0, 1, 2}) { Set(i + j, s[j] - '0'); } } void msg(int i, int type) { if (type == 0) { set(i, "000"); } else if (type == 1) { set(i, "011"); } else if (type == 2) { set(i, "101"); } else if (type == 3) { set(i, "111"); } else if (type == 4) { set(i, "100"); } else if (type == 5) { set(i, "001"); } else { set(i, "010"); } } int conv(string s) { if (s == "10") { return 1; } if (s == "01") { return 2; } return 3; } } void Anna(int N, long long X, int K, int *P) { vector<bool> broke(N); for (int i = 0; i < K; ++i) { broke[P[i]] = 1; } int ptr = 0; for (int i = 0; i < N; i += 3) { if (ptr == 60) { msg(i, 0); } int cnt = 0; for (auto j : {0, 1, 2}) { cnt += broke[i + j]; } if (cnt > 1) { msg(i, 0); } else if (cnt == 1) { string m; m += (X >> ptr++ & 1) + '0'; msg(i, conv(m)); } else { int c = X >> ptr++ & 1; if (c == 0) { msg(i, 6); } else { msg(i, broke[i] ? 5 : 4); } } } }
#include "Brunolib.h" #include <bits/stdc++.h> using namespace std; namespace { string decode(string m) { if (m == "000") { return ""; } if (m == "011") { return "10"; } if (m == "101") { return "01"; } if (m == "111") { return "11"; } if (m == "100" || m == "001") { return "1"; } return "0"; } } long long Bruno(int N, int *A) { string S; for (int i = 0; i < N; i += 3) { string m; for (auto j : {0, 1, 2}) { m += A[i + j] + '0'; } S += decode(m); } long long res = 0; for (int i = 0; i < 60; ++i) { if (S[i] == '1') { res += 1LL << i; } } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...