#include <iostream>
using namespace std;
int s[26];
int check1(){
for(int m=1;m<=21;m=m+5){
int vis=1;
int t=s[m];
for(int p=1;p<5;p++){
if(t!=s[m+p]) vis=0;
}
if(vis==1) return 0;
}
return 1;
}
int check2(){
//cout<<1<<" ";
for(int m=1;m<=5;m++){
int t=s[m];
int vis=1;
for(int p=m+5;p<=25;p=p+5){
if(t!=s[p]) vis=0;
}
if(vis==1) return 0;
}
return 1;
}
int check3() {
if (s[1] == s[7] && s[1] == s[13] && s[1] == s[19] && s[1] == s[25]) return 0;
if (s[5] == s[9] && s[5] == s[13] && s[5] == s[17] && s[5] == s[21]) return 0;
return 1;
}
int main() {
int num = 0;
for (int a = 1; a <= 25; a++) {
s[a] = 1;
for (int b = a + 1; b <= 25; b++) {
s[b] = 1;
for (int c = b + 1; c <= 25; c++) {
s[c] = 1;
for (int d = c + 1; d <= 25; d++) {
s[d] = 1;
for (int e = d + 1; e <= 25; e++) {
s[e] = 1;
for (int f = e + 1; f <= 25; f++) {
s[f] = 1;
for (int g = f + 1; g <= 25; g++) {
s[g] = 1;
for (int h = g + 1; h <= 25; h++) {
s[h] = 1;
for (int i = h + 1; i <= 25; i++) {
s[i] = 1;
for (int j = i + 1; j <= 25; j++) {
s[j] = 1;
for (int k = j + 1; k <= 25; k++) {
s[k] = 1;
for (int l = k + 1; l <= 25; l++) {
s[l] = 1;
if (check1() == 1 && check2() == 1 && check3()==1) num++;
s[l] = 0;
}
s[k] = 0;
}
s[j] = 0;
}
s[i] = 0;
}
s[h] = 0;
}
s[g] = 0;
}
s[f] = 0;
}
s[e] = 0;
}
s[d] = 0;
}
s[c] = 0;
}
s[b]=0;
}
s[a] = 0;
}
cout << num;
return 0;
}
2024c/c++A组填空第二题--下棋
于 2024-04-30 00:55:18 首次发布