| Task: | Hypyt |
| Sender: | jhuun |
| Submission time: | 2025-10-18 19:29:02 +0300 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 30 |
| #2 | ACCEPTED | 70 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 1, 2 | details |
| #2 | ACCEPTED | 0.00 s | 1, 2 | details |
| #3 | ACCEPTED | 0.02 s | 2 | details |
| #4 | ACCEPTED | 0.04 s | 2 | details |
| #5 | ACCEPTED | 0.06 s | 2 | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:54:25: warning: loop variable '<structured bindings>' creates a copy from type 'const std::pair<int, int>' [-Wrange-loop-construct]
54 | for (const auto [dy, dx] : solve(pi(n, m))) {
| ^~~~~~~~
input/code.cpp:54:25: note: use reference type to prevent copying
54 | for (const auto [dy, dx] : solve(pi(n, m))) {
| ^~~~~~~~
| &Code
#include <bits/stdc++.h>
using pi = std::pair<int, int>;
std::map<pi, std::vector<pi>> M = [](){
std::map<pi, std::vector<pi>> M_;
M_[pi(1, 1)] = {};
M_[pi(1, 2)] = {pi(0, 1)};
M_[pi(2, 1)] = {pi(1, 0)};
M_[pi(2, 2)] = {pi(1, 0), pi(0, 1), pi(-1, 0)};
return M_;
}();
pi r2(pi yx) {
const auto [y, x] = yx;
return y < x ? pi(y, x - 2) : pi(y - 2, x);
}
std::vector<pi> L(pi yx) {
std::vector<pi> LM;
const auto [y, x] = yx;
if (y < x) {
for (int i = y - 1, s = 1; i >= -y + 1; --i, s *= -1) {
LM.emplace_back(s * i, s * (x - 1));
}
LM.emplace_back(0, -x + 2);
} else {
for (int i = x - 1, s = 1; i >= -x + 1; --i, s *= -1) {
LM.emplace_back(s * (y - 1), s * i);
}
LM.emplace_back(-y + 2, 0);
}
return LM;
}
std::vector<pi> solve(pi yx) {
if (M.count(yx)) {
return M[yx];
}
std::vector<pi> m = L(yx);
const auto& m2 = solve(r2(yx));
for (const auto& yx2 : m2) {
m.push_back(yx2);
}
return M[yx] = m;
}
int main() {
int t;
std::cin >> t;
for (int i = 0; i < t; ++i) {
int n, m;
std::cin >> n >> m;
for (const auto [dy, dx] : solve(pi(n, m))) {
std::cout << dy << ' ' << dx << '\n';
}
}
}
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 25 1 1 1 2 1 3 1 4 ... |
| correct output |
|---|
| 0 1 0 2 0 -1 0 3 0 -2 ... |
| user output |
|---|
| 0 1 0 2 0 -1 0 3 0 -2 ... Truncated |
Test 2
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 100 5 5 5 5 5 5 5 5 ... |
| correct output |
|---|
| 4 4 -4 -3 4 2 -4 -1 4 0 ... |
| user output |
|---|
| 4 4 -4 -3 4 2 -4 -1 4 0 ... Truncated |
Test 3
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 100 1 25 20 40 5 34 50 34 ... |
| correct output |
|---|
| 0 24 0 -23 0 22 0 -21 0 20 ... |
| user output |
|---|
| 0 24 0 -23 0 22 0 -21 0 20 ... Truncated |
Test 4
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 100 46 47 41 39 46 36 46 30 ... |
| correct output |
|---|
| 45 46 -45 -45 45 44 -45 -43 45 42 ... |
| user output |
|---|
| 45 46 -44 -46 43 46 -42 -46 41 46 ... Truncated |
Test 5
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 100 50 50 50 50 50 50 50 50 ... |
| correct output |
|---|
| 49 49 -49 -48 49 47 -49 -46 49 45 ... |
| user output |
|---|
| 49 49 -49 -48 49 47 -49 -46 49 45 ... Truncated |
