求各位帮忙,1stopt求解

考虑一个CSP,其中有八个变量A,B,C,D,E,F,G,H,每个变量都具有域{1、2、3、
4}。假设约束为:A≥G,A <H,| F – B |= 1,G <H,| G – C |= 1,| H – C |是偶数,
H≠D,D≥G,D≠C,E≠C,E <D – 1,E≠H – 2,G≠F,H≠F,C≠F,D≠F,| E – F |
求各位大神帮忙跑一下,急求

| E – F | 这个条件没写完整,不过最后结果不多,你自己筛选下就可以了。

问题解决的话,请点采纳


#include <stdio.h>
#include <string.h>

/*
考虑一个CSP,其中有八个变量A,B,C,D,E,F,G,H,每个变量都具有域{1、2、3、 
4}。假设约束为:A≥G,A <H,| F – B |= 1,G <H,| G – C |= 1,| H – C |是偶数, 
H≠D,D≥G,D≠C,E≠C,E <D – 1,E≠H – 2,G≠F,H≠F,C≠F,D≠F,| E – F | 

*/
int abs(int x) { if (x > 0) return x; else return -x; }
int main()
{
    int a,b,c,d,e,f,g,h;
    for (int a = 1; a <= 4; a++)
        for (int b = 1; b <= 4; b++)
            for (int c = 1; c <= 4; c++)
                for (int d = 1; d <= 4; d++)
                    for (int e = 1; e <= 4; e++)
                        for (int f = 1; f <= 4; f++)
                            for (int g = 1; g <= 4; g++)
                                for (int h = 1; h <= 4; h++)
                                {
                                    if (a>=g && a < h && abs(f-b)==1 && g<h && abs(g-c)==1 && 
                                        abs(h-c) %2==0 && h!=d && d>=g&&d!=c&&e!=c&&e<d-1&&e!=h-2&&g!=f&&h!=f&&c!=f&&d!=f)
                                    {
                                        printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d,g=%d,h=%d\n",a,b,c,d,e,f,g,h);
                                    }
                                }
    return 0;
}

a=1,b=2,c=2,d=4,e=1,f=3,g=1,h=2
a=1,b=3,c=2,d=3,e=1,f=4,g=1,h=2
a=1,b=4,c=2,d=4,e=1,f=3,g=1,h=2
a=2,b=2,c=3,d=4,e=2,f=1,g=2,h=3
a=3,b=1,c=4,d=3,e=1,f=2,g=3,h=4
a=3,b=2,c=2,d=3,e=1,f=1,g=3,h=4
a=3,b=2,c=4,d=3,e=1,f=1,g=3,h=4
a=3,b=3,c=4,d=3,e=1,f=2,g=3,h=4
Press any key to continue . . .