Submission #47753733
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
const int MAX = 100007;
int A[MAX], B[MAX], ans;
map<int, priority_queue<int>, greater<int>> PQ, cand;
void Fail() {
cout << -1;
exit(0);
}
int GetGroup(int N) {
if (!N) return 0;
while (!(N & 1)) N >>= 1;
return N;
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int N;
cin >> N;
for (int i = 0; i < N; ++i) cin >> A[i];
for (int i = 0; i < N; ++i) {
cin >> B[i];
PQ[GetGroup(B[i])].push(B[i]);
}
PQ[0] = {};
for (int i = 0; i < N; ++i) {
int n = A[i];
while (n && PQ.find(GetGroup(n)) == PQ.end()) {
while (!(n & 1)) {
n >>= 1;
ans++;
}
n >>= 1; ans++;
}
cand[GetGroup(n)].push(n);
}
unordered_map<int, int> diff;
for (int i = 0; i < 31; ++i) diff[1LL << i] = i;
for (auto& [n, CPQ] : PQ) {
if (CPQ.size() > cand[n].size()) Fail();
if (!n) break;
while (!CPQ.empty()) {
int a = CPQ.top(); CPQ.pop();
int b = cand[n].top(); cand[n].pop();
ans += diff[max(a, b) / min(a, b)];
}
while (!cand[n].empty()) {
int a = cand[n].top(); cand[n].pop();
while (a && (PQ.find(GetGroup(a)) == PQ.end() || PQ[GetGroup(a)].empty())) {
while (!(a & 1)) {
a >>= 1;
ans++;
}
a >>= 1; ans++;
}
cand[GetGroup(a)].push(a);
}
}
cout << ans;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | Ex - Multiply or Divide by 2 |
| User | IBory |
| Language | C++ 20 (gcc 12.2) |
| Score | 600 |
| Code Size | 1357 Byte |
| Status | AC |
| Exec Time | 142 ms |
| Memory | 26216 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_srnd_00.txt, 01_srnd_01.txt, 01_srnd_02.txt, 01_srnd_03.txt, 01_srnd_04.txt, 01_srnd_05.txt, 01_srnd_06.txt, 01_srnd_07.txt, 01_srnd_08.txt, 01_srnd_09.txt, 01_srnd_10.txt, 01_srnd_11.txt, 01_srnd_12.txt, 01_srnd_13.txt, 02_rnd_00.txt, 02_rnd_01.txt, 02_rnd_02.txt, 02_rnd_03.txt, 02_rnd_04.txt, 02_rnd_05.txt, 02_rnd_06.txt, 02_rnd_07.txt, 03_rndl_00.txt, 03_rndl_01.txt, 03_rndl_02.txt, 03_rndl_03.txt, 03_rndl_04.txt, 03_rndl_05.txt, 03_rndl_06.txt, 03_rndl_07.txt, 03_rndl_08.txt, 03_rndl_09.txt, 03_rndl_10.txt, 03_rndl_11.txt, 04_max_00.txt, 04_max_01.txt, 04_max_02.txt, 04_max_03.txt, 04_max_04.txt, 04_max_05.txt, 04_max_06.txt, 05_tozero_00.txt, 05_tozero_01.txt, 05_tozero_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 5 ms | 3376 KiB |
| 00_sample_01.txt | AC | 1 ms | 3340 KiB |
| 01_srnd_00.txt | AC | 1 ms | 3376 KiB |
| 01_srnd_01.txt | AC | 1 ms | 3528 KiB |
| 01_srnd_02.txt | AC | 1 ms | 3524 KiB |
| 01_srnd_03.txt | AC | 1 ms | 3340 KiB |
| 01_srnd_04.txt | AC | 1 ms | 3524 KiB |
| 01_srnd_05.txt | AC | 1 ms | 3468 KiB |
| 01_srnd_06.txt | AC | 1 ms | 3520 KiB |
| 01_srnd_07.txt | AC | 1 ms | 3336 KiB |
| 01_srnd_08.txt | AC | 1 ms | 3452 KiB |
| 01_srnd_09.txt | AC | 1 ms | 3388 KiB |
| 01_srnd_10.txt | AC | 1 ms | 3344 KiB |
| 01_srnd_11.txt | AC | 1 ms | 3440 KiB |
| 01_srnd_12.txt | AC | 1 ms | 3440 KiB |
| 01_srnd_13.txt | AC | 1 ms | 3572 KiB |
| 02_rnd_00.txt | AC | 72 ms | 26056 KiB |
| 02_rnd_01.txt | AC | 95 ms | 26016 KiB |
| 02_rnd_02.txt | AC | 99 ms | 26096 KiB |
| 02_rnd_03.txt | AC | 124 ms | 25760 KiB |
| 02_rnd_04.txt | AC | 97 ms | 26172 KiB |
| 02_rnd_05.txt | AC | 98 ms | 26052 KiB |
| 02_rnd_06.txt | AC | 103 ms | 26052 KiB |
| 02_rnd_07.txt | AC | 141 ms | 25780 KiB |
| 03_rndl_00.txt | AC | 81 ms | 26116 KiB |
| 03_rndl_01.txt | AC | 65 ms | 26176 KiB |
| 03_rndl_02.txt | AC | 78 ms | 25996 KiB |
| 03_rndl_03.txt | AC | 119 ms | 25700 KiB |
| 03_rndl_04.txt | AC | 95 ms | 26112 KiB |
| 03_rndl_05.txt | AC | 98 ms | 26024 KiB |
| 03_rndl_06.txt | AC | 103 ms | 26176 KiB |
| 03_rndl_07.txt | AC | 141 ms | 25844 KiB |
| 03_rndl_08.txt | AC | 96 ms | 26028 KiB |
| 03_rndl_09.txt | AC | 96 ms | 26000 KiB |
| 03_rndl_10.txt | AC | 103 ms | 26216 KiB |
| 03_rndl_11.txt | AC | 142 ms | 25772 KiB |
| 04_max_00.txt | AC | 24 ms | 4932 KiB |
| 04_max_01.txt | AC | 47 ms | 7860 KiB |
| 04_max_02.txt | AC | 28 ms | 6148 KiB |
| 04_max_03.txt | AC | 88 ms | 10672 KiB |
| 04_max_04.txt | AC | 82 ms | 10184 KiB |
| 04_max_05.txt | AC | 85 ms | 10448 KiB |
| 04_max_06.txt | AC | 89 ms | 10556 KiB |
| 05_tozero_00.txt | AC | 23 ms | 4676 KiB |
| 05_tozero_01.txt | AC | 23 ms | 4540 KiB |
| 05_tozero_02.txt | AC | 23 ms | 4656 KiB |