/
certificate.cpp
43 lines (40 loc) · 1.76 KB
/
certificate.cpp
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
#include <iostream>
using namespace std;
int data[20][7]={{1,3,4,5,7,2},{1,3,4,5,7,6,2},{1,4,3,5,6,7,2},{1,4,3,5,7,6,2},{2,5,6,7,3,4,1},{2,5,6,4,3,1},{2,5,7,6,3,4,1},{2,5,7,6,4,3,1},{3,4,6,7,1,5,2},{3,4,7,6,1,5,2},{4,3,6,7,1,5,2},{4,3,7,6,1,5,2},{5,2,6,7,1,3,4},{5,2,6,7,1,4,3}
,{5,2,7,6,1,3,4,},{5,2,7,6,1,4,3},{6,3,4,5,2,7,1},{6,4,3,5,2,7,1},{7,3,4,5,2,6,1},{7,4,3,5,2,6,1}};
int m[7][7]={{0,1,0,0,0,1,1},{1,0,1,1,0,0,0},{0,1,0,0,1,0,0},{0,1,0,0,1,0,0},{0,0,1,1,0,0,0},{1,0,0,0,0,0,1},{1,0,0,0,0,1,0}};
//int level[20]={4,4,};
//int data[32][8]={{0,2,4,5,6,7,1,3},{0,2,4,5,6,7,3,1},{0,4,2,6,5,7,1,3},{0,4,2,6,5,7,3,1},{1,3,5,6,7,0,2,4},{1,3,5,7,6,2,0,4},{1,3,6,5,7,0,4,2},{1,3,6,7,5,4,0,2},{1,3,7,5,6,2,4,0},{1,3,7,6,5,4,2,0},{2,0,4,5,7,6,1,3},{2,4,0,7,5,6,1,3},{3,1,5,6,7,0,2,4},{3,1,5,7,6,2,0,4},{3,1,6,5,7,0,4,2},{3,1,6,7,5,4,0,2},{3,1,7,5,6,2,4,0},{3,1,7,6,5,4,2,0},{4,0,2,6,7,5,1,3},{4,2,0,7,6,5,1,3},{5,1,3,0,2,6,7,4},{5,1,3,2,0,7,6,4},{5,3,1,0,2,6,7,4},{5,3,1,2,0,7,6,4},{6,1,3,0,4,5,7,2},{6,1,3,4,0,7,5,2},{6,3,1,0,4,5,7,2},{6,3,1,4,0,7,5,2},{7,1,3,2,4,5,6,0},{7,1,3,4,2,6,5,0},{7,3,1,2,4,5,6,0},{7,3,1,4,2,6,5,0}};
//int m[8][8]={{0,1,0,1,0,0,0,1},{1,0,1,0,1,0,0,0},{0,1,0,1,0,0,1,0},{1,0,1,0,1,0,0,0},{0,1,0,1,0,1,0,0},{0,0,0,0,1,0,1,1},{0,0,1,0,0,1,0,1},{1,0,0,0,0,1,1,0}};
int main()
{
_int64 best = 0x7fffffffffffffff;
int i,j,k;
for(i=0;i<20;i++)
{
_int64 num=0;
for(j=1;j<7;j++)
{
for(k=0;k<=j-1;k++)
{
if(m[data[i][k]-1][data[i][j]-1])
//if(m[data[i][k]][data[i][j]])
num+=1;
num<<=1;
}
}
num>>=1;
printf("%x\n",num);
/*if(num<best)
{
best = num;
cout<<"better="<<num<<endl;
}
else if(num>best)
cout<<"worse"<<endl;
else
cout<<"equal"<<endl;*/
}
system("pause");
return 0;
}