제출 #1235340

#제출 시각아이디문제언어결과실행 시간메모리
1235340chaeryeongBroken Device (JOI17_broken_device)C++20
0 / 100
0 ms320 KiB
#include "Annalib.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; void Anna (int N, ll X, int K, int P[]) { const int B = 60; vector <int> bad(N, 0); for (int i = 0; i < K; i++) { bad[P[i]] = 1; } vector <int> ret(N, 0); int b = 0; for (int i = 0; i < B; i++) { if (b >= N) { return; } int cnt = 0; bool flag = 0; for (int j = b; j < N; j += 2) { if (!bad[j] && !bad[j + 1]) { if (cnt) { ret[j] = ret[j + 1] = 1; cnt--; } else { ret[j] = (X >> i) & 1; b = j + 2; flag = 1; break; } } else if (!bad[j] && bad[j + 1]) { if (cnt) { ret[j] = ret[j + 1] = 0; cnt++; } else { ret[j] = (X >> i) & 1; ret[j + 1] = 0; b = j + 2; flag = 1; break; } } else if (bad[j] && !bad[j + 1]) { ret[j + 1] = 1; } else { cnt++; } } if (!flag) { return; } } for (auto i : ret) { cout << i << " "; } cout << '\n'; for (int i = 0; i < N; i++) { Set(i, ret[i]); } }
#include "Brunolib.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; ll Bruno (int N, int A[]) { const int B = 60; vector <int> bits; for (int i = 0; i < N; i += 2) { if (A[i] == 0 && A[i + 1] == 0) { bits.push_back(0); } else if (A[i] == 1 && A[i + 1] == 0) { bits.push_back(1); } else if (A[i] == 0 && A[i + 1] == 1) { } else { bits.pop_back(); } } ll ret = 0; for (int i = 0; i < (int)bits.size(); i++) { if (bits[i]) { ret += 1ll << i; } } return ret; }
#Verdict Execution timeMemoryGrader output
Fetching results...