转盘
题目描述
小A同学想要设计一个有n*n个格的轮盘,并往每个格里填入0—n—1之间的一个数。他想要相邻的两个数顺时针组成的有序对不重复出现,请你帮他设计这个轮盘。
要求:输出最小字典序的解。输入格式
输入一个正整数n。 输出格式
输出n*n个数,用空格隔开,表示这个轮盘。
输入样例 1
2
输出样例 1
0 0 1 1
样例解释:
1 0
1 0
【数据规模】
20%的数据:1 < n <= 3
100%的数据 1 < n <= 100
哪里错了啊
#include <bits/stdc++.h>
using namespace std;
void printWheel(int n) {
vector<vector<int>> wheel(n, vector<int>(n));
int num = 0;
for (int i = 0; i < n / 2; i++) {
for (int j = i; j < n - i; j++) {
wheel[i][j] = num % n;
wheel[j][n - i - 1] = num % n;
wheel[n - i - 1][n - j - 1] = (num + 1) % n;
wheel[n - j - 1][i] = (num + 1) % n;
num += 2;
}
}
for(int i=0; i<n; i++){
cout << wheel[i][n-1] << " ";
}
for(int i=n-2; i>=0; i--){
cout << wheel[n-1][i] << " ";
}
for(int i=n-2; i>=0; i--){
cout << wheel[i][0] << " ";
}
for(int i=0; i<n-2; i++){
cout << wheel[0][i] << " ";
}
cout << endl;
}
int main() {
int n;
cin >> n;
printWheel(n);
return 0;
}