QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#426600 | #6319. Parallel Processing (Easy) | james1BadCreeper | AC ✓ | 1ms | 3752kb | C++17 | 4.7kb | 2024-05-31 16:01:01 | 2024-05-31 16:01:04 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
int id, n, I, be = 5;
vector<tuple<int, int, int>> ans;
/*
inline int get(int x) {
if (x % 4 == 1) return x - 1;
if (x % 4 == 2) return x - 2;
if (x % 4 == 3) return x - 3;
return x - 4;
}
int over = 4;
inline void mkans(void) {
if (get(be) <= over && be < I) {
ans.emplace_back(be, get(be), be);
++be;
} else ans.emplace_back(2000, 2000, 2000);
}
*/
void solve(int n) {
/*
int I, be = 5;
for (I = 1; I + 3 - 1 <= n; I += 8) {
ans.emplace_back(I + 1, I, I + 1);
if (I + 3 <= n) ans.emplace_back(I + 3, I + 2, I + 3);
else mkans();
if (I + 1 + 4 <= n) ans.emplace_back(I + 1 + 4, I + 4, I + 1 + 4);
else mkans();
if (I + 3 + 4 <= n) ans.emplace_back(I + 3 + 4, I + 2 + 4, I + 3 + 4);
else mkans();
over = be;
ans.emplace_back(I + 2, I + 1, I + 2);
if (I + 3 <= n) ans.emplace_back(I + 3, I + 1, I + 3);
else mkans();
if (I + 2 + 4 <= n) ans.emplace_back(I + 2 + 4, I + 1 + 4, I + 2 + 4);
else mkans();
if (I + 3 + 4 <= n) ans.emplace_back(I + 3 + 4, I + 1 + 4, I + 3 + 4);
else mkans();
over = be;
}
if (I < n) {
ans.emplace_back(I + 1, I, I + 1);
mkans(); mkans(); mkans(); over = be;
}
// cerr << ans.size() << "\n";
int cnt = 0;
while (be % 4 != 1) ans.emplace_back(be, get(be), be), ++be, ++cnt;
while (cnt != 0 && cnt != 4) ans.emplace_back(2000, 2000, 2000), ++cnt;
for (; be <= n; be += 4) {
ans.emplace_back(be, get(be), be);
if (be + 1 <= n) ans.emplace_back(be + 1, get(be + 1), be + 1);
else ans.emplace_back(2000, 2000, 2000);
if (be + 2 <= n) ans.emplace_back(be + 2, get(be + 2), be + 2);
else ans.emplace_back(2000, 2000, 2000);
if (be + 3 <= n) ans.emplace_back(be + 3, get(be + 3), be + 3);
else ans.emplace_back(2000, 2000, 2000);
}
*/
if (n >= 17) {
solve(n - 10); // n - 9
auto add = [&](int a, int b, int c) -> void {
if (a > n || b > n || c > n) ans.emplace_back(2000, 2000, 2000);
else ans.emplace_back(a + n - 11, b + n - 11, c + n - 11);
};
add(2, 1, 2); add(4, 3, 4); add(6, 5, 6); add(8, 7, 8);
add(10, 9, 10); add(3, 2, 3); add(4, 2, 4); add(8, 6, 8);
add(5, 4, 5); add(6, 4, 6); add(8, 4, 8); add(11, 10, 11);
add(7, 6, 7); add(9, 8, 9); add(10, 8, 10); add(11, 8, 11);
return;
}
auto add = [&](int a, int b, int c) -> void {
if (a > n || b > n || c > n) ans.emplace_back(2000, 2000, 2000);
else ans.emplace_back(a, b, c);
};
if (n == 1) ;
else if (n == 2) {
add(2, 1, 2); add(2000, 2000, 2000); add(2000, 2000, 2000); add(2000, 2000, 2000);
} else if (n <= 4) {
add(2, 1, 2); add(4, 3, 4); add(2000, 2000, 2000); add(2000, 2000, 2000);
add(3, 2, 3); add(4, 2, 4); add(2000, 2000, 2000); add(2000, 2000, 2000);
} else if (n <= 8) {
add(2, 1, 2); add(4, 3, 4); add(6, 5, 6); add(8, 7, 8);
add(3, 2, 3); add(4, 2, 4); add(7, 6, 7); add(8, 6, 8);
add(5, 4, 5); add(6, 4, 6); add(7, 4, 7); add(8, 4, 8);
} else if (n <= 11) {
add(2, 1, 2); add(4, 3, 4); add(6, 5, 6); add(8, 7, 8);
add(10, 9, 10); add(3, 2, 3); add(4, 2, 4); add(8, 6, 8);
add(5, 4, 5); add(6, 4, 6); add(8, 4, 8); add(11, 10, 11);
add(7, 6, 7); add(9, 8, 9); add(10, 8, 10); add(11, 8, 11);
} else if (n <= 13) {
add(2, 1, 2); add(4, 3, 4); add(6, 5, 6); add(8, 7, 8);
add(4, 2, 4); add(8, 6, 8); add(10, 9, 10); add(12, 11, 12);
add(3, 2, 3); add(6, 4, 6); add(8, 4, 8); add(13, 12, 13);
add(5, 4, 5); add(7, 6, 7); add(9, 8, 9); add(10, 8, 10);
add(11, 10, 11); add(12, 10, 12); add(13, 10, 13); add(2000, 2000, 2000);
} else if (n <= 16) {
add(2, 1, 2); add(4, 3, 4); add(6, 5, 6); add(8, 7, 8);
add(4, 2, 4); add(8, 6, 8); add(10, 9, 10); add(12, 11, 12);
add(6, 4, 6); add(8, 4, 8); add(14, 13, 14); add(16, 15, 16);
add(3, 2, 3); add(5, 4, 5); add(10, 8, 10); add(14, 12, 14);
add(7, 6, 7); add(9, 8, 9); add(12, 10, 12); add(14, 10, 14);
add(11, 10, 11); add(13, 12, 13); add(15, 14, 15); add(16, 14, 16);
}
}
int main(void) {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n;
solve(n);
// cin >> n;
cout << ans.size() / 4 << "\n";
for (auto [i, j, k] : ans) cout << i << " " << j << " " << k << "\n";
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3612kb
input:
2
output:
1 2 1 2 2000 2000 2000 2000 2000 2000 2000 2000 2000
result:
ok AC
Test #2:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
4
output:
2 2 1 2 4 3 4 2000 2000 2000 2000 2000 2000 3 2 3 4 2 4 2000 2000 2000 2000 2000 2000
result:
ok AC
Test #3:
score: 0
Accepted
time: 0ms
memory: 3676kb
input:
3
output:
2 2 1 2 2000 2000 2000 2000 2000 2000 2000 2000 2000 3 2 3 2000 2000 2000 2000 2000 2000 2000 2000 2000
result:
ok AC
Test #4:
score: 0
Accepted
time: 0ms
memory: 3696kb
input:
5
output:
3 2 1 2 4 3 4 2000 2000 2000 2000 2000 2000 3 2 3 4 2 4 2000 2000 2000 2000 2000 2000 5 4 5 2000 2000 2000 2000 2000 2000 2000 2000 2000
result:
ok AC
Test #5:
score: 0
Accepted
time: 0ms
memory: 3676kb
input:
6
output:
3 2 1 2 4 3 4 6 5 6 2000 2000 2000 3 2 3 4 2 4 2000 2000 2000 2000 2000 2000 5 4 5 6 4 6 2000 2000 2000 2000 2000 2000
result:
ok AC
Test #6:
score: 0
Accepted
time: 0ms
memory: 3680kb
input:
7
output:
3 2 1 2 4 3 4 6 5 6 2000 2000 2000 3 2 3 4 2 4 7 6 7 2000 2000 2000 5 4 5 6 4 6 7 4 7 2000 2000 2000
result:
ok AC
Test #7:
score: 0
Accepted
time: 0ms
memory: 3680kb
input:
8
output:
3 2 1 2 4 3 4 6 5 6 8 7 8 3 2 3 4 2 4 7 6 7 8 6 8 5 4 5 6 4 6 7 4 7 8 4 8
result:
ok AC
Test #8:
score: 0
Accepted
time: 0ms
memory: 3696kb
input:
9
output:
4 2 1 2 4 3 4 6 5 6 8 7 8 2000 2000 2000 3 2 3 4 2 4 8 6 8 5 4 5 6 4 6 8 4 8 2000 2000 2000 7 6 7 9 8 9 2000 2000 2000 2000 2000 2000
result:
ok AC
Test #9:
score: 0
Accepted
time: 0ms
memory: 3752kb
input:
10
output:
4 2 1 2 4 3 4 6 5 6 8 7 8 10 9 10 3 2 3 4 2 4 8 6 8 5 4 5 6 4 6 8 4 8 2000 2000 2000 7 6 7 9 8 9 10 8 10 2000 2000 2000
result:
ok AC
Test #10:
score: 0
Accepted
time: 0ms
memory: 3692kb
input:
11
output:
4 2 1 2 4 3 4 6 5 6 8 7 8 10 9 10 3 2 3 4 2 4 8 6 8 5 4 5 6 4 6 8 4 8 11 10 11 7 6 7 9 8 9 10 8 10 11 8 11
result:
ok AC
Test #11:
score: 0
Accepted
time: 0ms
memory: 3684kb
input:
12
output:
5 2 1 2 4 3 4 6 5 6 8 7 8 4 2 4 8 6 8 10 9 10 12 11 12 3 2 3 6 4 6 8 4 8 2000 2000 2000 5 4 5 7 6 7 9 8 9 10 8 10 11 10 11 12 10 12 2000 2000 2000 2000 2000 2000
result:
ok AC
Test #12:
score: 0
Accepted
time: 0ms
memory: 3676kb
input:
13
output:
5 2 1 2 4 3 4 6 5 6 8 7 8 4 2 4 8 6 8 10 9 10 12 11 12 3 2 3 6 4 6 8 4 8 13 12 13 5 4 5 7 6 7 9 8 9 10 8 10 11 10 11 12 10 12 13 10 13 2000 2000 2000
result:
ok AC
Test #13:
score: 0
Accepted
time: 1ms
memory: 3684kb
input:
14
output:
6 2 1 2 4 3 4 6 5 6 8 7 8 4 2 4 8 6 8 10 9 10 12 11 12 6 4 6 8 4 8 14 13 14 2000 2000 2000 3 2 3 5 4 5 10 8 10 14 12 14 7 6 7 9 8 9 12 10 12 14 10 14 11 10 11 13 12 13 2000 2000 2000 2000 2000 2000
result:
ok AC
Test #14:
score: 0
Accepted
time: 0ms
memory: 3696kb
input:
15
output:
6 2 1 2 4 3 4 6 5 6 8 7 8 4 2 4 8 6 8 10 9 10 12 11 12 6 4 6 8 4 8 14 13 14 2000 2000 2000 3 2 3 5 4 5 10 8 10 14 12 14 7 6 7 9 8 9 12 10 12 14 10 14 11 10 11 13 12 13 15 14 15 2000 2000 2000
result:
ok AC
Test #15:
score: 0
Accepted
time: 0ms
memory: 3664kb
input:
16
output:
6 2 1 2 4 3 4 6 5 6 8 7 8 4 2 4 8 6 8 10 9 10 12 11 12 6 4 6 8 4 8 14 13 14 16 15 16 3 2 3 5 4 5 10 8 10 14 12 14 7 6 7 9 8 9 12 10 12 14 10 14 11 10 11 13 12 13 15 14 15 16 14 16
result:
ok AC