是dfs哒!
#include <iostream>
using namespace std;
int ans,p,a[9],used[10];
bool check(){
return((a[0]<a[5]&&a[5]<a[8])
&&(a[1]<a[3]&&a[6]<a[7]&&a[2]<a[4])
&&(a[0]+a[1]+a[3]+a[5]==a[0]+a[2]+a[4]+a[8]
&&a[0]+a[2]+a[4]+a[8]==a[5]+a[6]+a[7]+a[8]
&&a[5]+a[6]+a[7]+a[8]==p));
}
void dfs(int n){
if(n==9){
ans+=check();
return;
}
for(int i=1;i<=9;i++){
if(used[i]) continue;
else a[n]=i,used[i]=true;
dfs(n+1);
used[i]=false;
}
}
int main(){
cin>>p;
dfs(0);
if(ans) cout<<ans;
else cout<<"Not exist";
return 0;
}