update
This commit is contained in:
parent
6ab01a7329
commit
96af76f038
48
src/P1219/P1219.cpp
Normal file
48
src/P1219/P1219.cpp
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <stdexcept>
|
||||||
|
|
||||||
|
using ll = long long;
|
||||||
|
|
||||||
|
auto &is = std::cin;
|
||||||
|
auto &os = std::cout;
|
||||||
|
|
||||||
|
template<class T,size_t size>
|
||||||
|
struct greater_array{
|
||||||
|
T arr[size*2];
|
||||||
|
T&operator[](ll n)noexcept{
|
||||||
|
return arr[n+size];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const ll max_n {13+5};
|
||||||
|
ll n;
|
||||||
|
greater_array<bool, max_n*3> l,zx,yx;
|
||||||
|
ll ans[max_n], sum;
|
||||||
|
|
||||||
|
|
||||||
|
void dfs(const ll x)noexcept{
|
||||||
|
if(x>n){
|
||||||
|
sum++;
|
||||||
|
if(sum<=3){
|
||||||
|
for(ll i{1};i<=n;i++){
|
||||||
|
os<<ans[i]<<' ';
|
||||||
|
}
|
||||||
|
os<<'\n';
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for(ll j{1};j<=n;j++){
|
||||||
|
if(l[j]||zx[x+j]||yx[x-j])continue;
|
||||||
|
ans[x] = j;
|
||||||
|
l[j]=zx[x+j]=yx[x-j]=true;
|
||||||
|
dfs(x+1);
|
||||||
|
l[j]=zx[x+j]=yx[x-j]=false;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()noexcept{
|
||||||
|
is>>n;
|
||||||
|
dfs(1);
|
||||||
|
os<<sum<<'\n';
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user