1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| #include<stdio.h>
#include<math.h>
#define ND(n,i,j,v)(n*n*(i-1)+(j-1)*n+v)
void code_cnf(){
int i, j, t, var=9, cases=1, clause= (int)pow(1000, 9);
//la creation du fichier cnf.
printf("p cnf %d %d \n", var*var*var, clause);
//valeur entre 1 et 9
while(cases<=var){
for(i=1; i<=var; i++){
for(j=1;j<=var; j++){
printf("%d", ND(var,i,j,cases));
printf(" ");
}
printf("0 \n");
}
cases++;
}
//ligne
cases=1;
int tmp=0;
while(cases<=var){
for(t=1;t<=var;t++){
for(j=1;j<=var;j++){
for(i=1+cases;i<=var; i++){
printf("-%d -%d 0\n", ND(var,t,cases,j), ND(var,t,i,j));
}
}
}
cases++;
}
//colonne
cases=1;
while(cases<=var){
for(t=1;t<=var;t++){
for(j=1;j<=var;j++){
for(i=1+cases;i<=var; i++){
printf("-%d -%d 0\n", ND(var, cases, t, j), ND(var, i, t, j));
}
}
}
cases++;
}
//carre
int x,y;
for (i = 1; i<=var; i++){
for (j = 1; j<=var; j++){
for (x = 1; x <= var; x++){
for (y = 1; y < x; y++){
printf("-%d -%d 0\n", ND(var, i, j, x), ND(var, i, j, y));
}
}
}
}
}
int main(){
code_cnf();
return ;
} |
Partager