Submission #1044142

#TimeUsernameProblemLanguageResultExecution timeMemory
1044142vjudge1Pick (COI18_pick)C++17
5 / 100
1 ms348 KiB
#include <bits/stdc++.h> using namespace std; const int N = 105; vector<pair<int, int>> path; bool seen[N][N], done; void recur(int x, int y, int a, int b, int c, int d){ if (done) return; if (x < 0 or y < 0) return; if (a == 0 and b == 0 and c == 0 and d == 0){ if (x == 0 and y == 0){ for (auto [x, y] : path) cout << x << " " << y << endl; done = 1; return ; } return; } if (seen[x][y]) return; path.push_back({x, y}); if (a > 0){ recur(x + 1, y, a - 1, b, c, d); recur(x - 1, y, a - 1, b, c, d); } if (b > 0){ recur(x, y + 1, a, b - 1, c, d); recur(x, y - 1, a, b - 1, c, d); } if (c > 0){ recur(x + 1, y + 1, a, b, c - 1, d); recur(x - 1, y - 1, a, b, c - 1, d); } if (d > 0){ recur(x + 1, y - 1, a, b, c, d - 1); recur(x - 1, y + 1, a, b, c, d - 1); } seen[x][y] = 0; path.pop_back(); } int main(){ int a, b, c, d; cin >> a >> b >> c >> d; // if (a == 0 and b == 0){ // vector<pair<int, int>> vec; // int x = 0, y = 0; // vec.push_back({0, 0}); // for (int i = 0; i < c / 2; i ++){ // x++, y++; // vec.push_back({x, y}); // } // for (int i = 0; i < d / 2; i ++){ // x--, y++; // vec.push_back({x, y}); // } // for (int i = 0; i < c / 2; i ++){ // x--, y--; // vec.push_back({x, y}); // } // for (int i = 0; i < d / 2; i ++){ // x++, y--; // vec.push_back({x, y}); // } // vec.pop_back(); // for (auto [x, y] : vec) // cout << x << " " << y << endl; // return 0; // } if (c == 0 and d == 0){ vector<pair<int, int>> vec; int x = 0, y = 0; vec.push_back({0, 0}); for (int i = 0; i < a / 2; i ++){ x++; vec.push_back({x, y}); } for (int i = 0; i < b / 2; i ++){ y++; vec.push_back({x, y}); } for (int i = 0; i < a / 2; i ++){ x--; vec.push_back({x, y}); } for (int i = 0; i < b / 2; i ++){ y--; vec.push_back({x, y}); } vec.pop_back(); for (auto [x, y] : vec) cout << x << " " << y << endl; return 0; } recur(0, 0, a, b, c, d); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...