Untitled
c_cpp
a month ago
709 B
3
Indexable
Never
#include <iostream> #include <vector> using namespace std; vector<int> shortestPath(int N, int X, int Y) { vector<int> result(N, 0); for (int k = 1; k <= N; k++) { if (k < abs(Y - X) + 1) { result[k - 1] = k - 1; } else if (k == abs(Y - X) + 1) { result[k - 1] = k - 1 + min(X, Y) - 1 + N - max(X, Y); } else { result[k - 1] = result[2 * abs(Y - X) + 1 - k - 1]; } } return result; } int main() { int N, X, Y; cin >> N >> X >> Y; vector<int> result = shortestPath(N, X, Y); for (int k = 0; k < N; k++) { cout << result[k] << " "; } return 0; }