Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
107756 | 李树强 | 跳棋的挑战 | C++ | 通过 | 100 | 301 MS | 240 KB | 607 | 2023-10-28 09:30:51 |
#include<iostream> using namespace std; int res[20], n, cnt = 0; bool vis[25], line1[50], line2[50]; void f(int pos){ if (pos >= n){ if (cnt < 3){ for(int i = 0; i < n; i++){ cout << res[i] << ' '; } cout << endl; } cnt++; return; } for(int i = 1; i <= n; i++){ int x = pos, y = i; if(!vis[i] && !line1[x - y + n] && !line2[x + y]){ res[pos] = i; vis[i] = line1[x - y + n] = line2[x + y] = true; f(pos + 1); vis[i] = line1[x - y + n] = line2[x + y] = false; } } } int main(){ cin >> n; f(0); cout << cnt; return 0; }