Submission #75822199
Source Code Expand
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
using namespace std;
using ll = long long;
int n, k;
vector<tuple<int, int, int, int, int>> v;
int ntom[100007];
bool vst[100007];
bool out[100007];
int mx;
void f(int node, int curr, int ret) {
if (ret >= n) return;
vst[node] = 1;
v.emplace_back(node, ret, ret + (1 << curr) - 1, node * 2, node * 2 + 1);
if (!curr) return;
f(node * 2, curr - 1, ret);
f(node * 2 + 1, curr - 1, ret + (1 << curr));
}
int main() {
cin.tie(0), ios_base::sync_with_stdio(0);
cin >> n >> k;
if (n == k) {
cout << 2 * n - 1 << '\n';
for (int i = 1; i < n - 1; i++) {
cout << i << ' ' << n + 1 << ' ' << i << '\n';
}
cout << n - 1 << ' ' << n - 1 << ' ' << n << '\n';
cout << "0 0 0\n0 0 0\n";
for (int i = n + 1; i < 2 * n - 1; i++) {
cout << 2 * n - 2 - i << ' ' << (i + 1 == 2 * n - 1 ? 0 : (i + 1))
<< ' ' << 2 * n - 1 - i << '\n';
}
exit(0);
}
int bits = ceil(log2(n));
int time = bits + 1;
if (k < time) cout << -1, exit(0);
int gap = k - time;
f(1, bits - 1, 0);
sort(all(v));
int start = 0;
vector<tuple<int, int, int, int>> fk;
if (gap) {
fk.emplace_back(0, 0, 0, n + 1);
for (int i = n + 1; i < n + gap; i++) {
fk.emplace_back(i, 0, 0, i + 1);
}
start = n + gap;
}
int idx = start;
int idx2 = 1;
for (auto& [n1, ret, f, n2, n3] : v) {
if (idx2 < ret)
ntom[n1] = idx2++;
else {
ntom[n1] = idx;
if (!idx)
idx = n + 1;
else
idx++;
}
}
for (int i = idx2; i <= n; i++) fk.emplace_back(i, 0, 0, 0);
for (auto& [n1, ret, f, n2, n3] : v) {
int bt = 1 << bits;
int x2 = (n2 >= bt ? n2 - bt + 1 : ntom[n2]);
int x3 = (n3 >= bt ? n3 - bt + 1 : ntom[n3]);
fk.emplace_back(ntom[n1], f + 1, x2, x3);
}
sort(all(fk));
if (fk.size() > 2048) cout << -1, exit(0);
cout << fk.size() << '\n';
for (auto& [i, f, n2, n3] : fk)
cout << min(f, n) << ' ' << n2 << ' ' << n3 << '\n';
}
Submission Info
| Submission Time | |
|---|---|
| Task | L - ChannelTalk Workflow |
| User | pluie |
| Language | C++23 (GCC 15.2.0) |
| Score | 100 |
| Code Size | 2311 Byte |
| Status | AC |
| Exec Time | 1 ms |
| Memory | 3884 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 100 / 100 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00-sample-001.txt |
| All | 00-sample-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt, 01-029.txt, 01-030.txt, 01-031.txt, 01-032.txt, 01-033.txt, 01-034.txt, 01-035.txt, 01-036.txt, 01-037.txt, 01-038.txt, 01-039.txt, 01-040.txt, 01-041.txt, 01-042.txt, 01-043.txt, 01-044.txt, 01-045.txt, 01-046.txt, 01-047.txt, 01-048.txt, 01-049.txt, 01-050.txt, 01-051.txt, 01-052.txt, 01-053.txt, 01-054.txt, 01-055.txt, 01-056.txt, 01-057.txt, 01-058.txt, 01-059.txt, 01-060.txt, 01-061.txt, 01-062.txt, 01-063.txt, 01-064.txt, 01-065.txt, 01-066.txt, 01-067.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-001.txt | AC | 1 ms | 3412 KiB |
| 01-002.txt | AC | 1 ms | 3836 KiB |
| 01-003.txt | AC | 1 ms | 3668 KiB |
| 01-004.txt | AC | 1 ms | 3736 KiB |
| 01-005.txt | AC | 1 ms | 3756 KiB |
| 01-006.txt | AC | 1 ms | 3632 KiB |
| 01-007.txt | AC | 1 ms | 3792 KiB |
| 01-008.txt | AC | 1 ms | 3660 KiB |
| 01-009.txt | AC | 1 ms | 3884 KiB |
| 01-010.txt | AC | 1 ms | 3884 KiB |
| 01-011.txt | AC | 1 ms | 3840 KiB |
| 01-012.txt | AC | 1 ms | 3500 KiB |
| 01-013.txt | AC | 1 ms | 3840 KiB |
| 01-014.txt | AC | 1 ms | 3768 KiB |
| 01-015.txt | AC | 1 ms | 3820 KiB |
| 01-016.txt | AC | 1 ms | 3792 KiB |
| 01-017.txt | AC | 1 ms | 3820 KiB |
| 01-018.txt | AC | 1 ms | 3764 KiB |
| 01-019.txt | AC | 1 ms | 3744 KiB |
| 01-020.txt | AC | 1 ms | 3632 KiB |
| 01-021.txt | AC | 1 ms | 3768 KiB |
| 01-022.txt | AC | 1 ms | 3688 KiB |
| 01-023.txt | AC | 1 ms | 3688 KiB |
| 01-024.txt | AC | 1 ms | 3624 KiB |
| 01-025.txt | AC | 1 ms | 3656 KiB |
| 01-026.txt | AC | 1 ms | 3536 KiB |
| 01-027.txt | AC | 1 ms | 3636 KiB |
| 01-028.txt | AC | 1 ms | 3636 KiB |
| 01-029.txt | AC | 1 ms | 3500 KiB |
| 01-030.txt | AC | 1 ms | 3536 KiB |
| 01-031.txt | AC | 1 ms | 3688 KiB |
| 01-032.txt | AC | 1 ms | 3412 KiB |
| 01-033.txt | AC | 1 ms | 3364 KiB |
| 01-034.txt | AC | 1 ms | 3596 KiB |
| 01-035.txt | AC | 1 ms | 3576 KiB |
| 01-036.txt | AC | 1 ms | 3712 KiB |
| 01-037.txt | AC | 1 ms | 3492 KiB |
| 01-038.txt | AC | 1 ms | 3540 KiB |
| 01-039.txt | AC | 1 ms | 3348 KiB |
| 01-040.txt | AC | 1 ms | 3624 KiB |
| 01-041.txt | AC | 1 ms | 3596 KiB |
| 01-042.txt | AC | 1 ms | 3756 KiB |
| 01-043.txt | AC | 1 ms | 3504 KiB |
| 01-044.txt | AC | 1 ms | 3576 KiB |
| 01-045.txt | AC | 1 ms | 3480 KiB |
| 01-046.txt | AC | 1 ms | 3712 KiB |
| 01-047.txt | AC | 1 ms | 3520 KiB |
| 01-048.txt | AC | 1 ms | 3528 KiB |
| 01-049.txt | AC | 1 ms | 3504 KiB |
| 01-050.txt | AC | 1 ms | 3636 KiB |
| 01-051.txt | AC | 1 ms | 3500 KiB |
| 01-052.txt | AC | 1 ms | 3540 KiB |
| 01-053.txt | AC | 1 ms | 3520 KiB |
| 01-054.txt | AC | 1 ms | 3752 KiB |
| 01-055.txt | AC | 1 ms | 3356 KiB |
| 01-056.txt | AC | 1 ms | 3752 KiB |
| 01-057.txt | AC | 1 ms | 3460 KiB |
| 01-058.txt | AC | 1 ms | 3820 KiB |
| 01-059.txt | AC | 1 ms | 3520 KiB |
| 01-060.txt | AC | 1 ms | 3836 KiB |
| 01-061.txt | AC | 1 ms | 3348 KiB |
| 01-062.txt | AC | 1 ms | 3656 KiB |
| 01-063.txt | AC | 1 ms | 3480 KiB |
| 01-064.txt | AC | 1 ms | 3820 KiB |
| 01-065.txt | AC | 1 ms | 3596 KiB |
| 01-066.txt | AC | 1 ms | 3716 KiB |
| 01-067.txt | AC | 1 ms | 3484 KiB |