求大佬解释一下从A~L个硬币中找到唯一假币的这个代码:#include "stdio.h"#include "string.h"typedef enum {even, up, down}Res;typedef struct {char* l; char* r; Res v;}Judge;int main() {Judge d[] = {{"ABCD", "EFGH", even},{"ABCI", "EFJK", up},{"ABIJ", "EFGH", even}};int possible[12];int i,j;for (i = 0; i < 12; i++) possible[i] = 1;for (i = 0; i < sizeof(d)/sizeof(Judge); i++) {if (d[i].v == even) {char *s = d[i].l;while (*s) { possible[*s-'A'] = 0; s++;}s = d[i].r;while (*s) { possible[*s-'A'] = 0; s++;}}}for (i = 0; i < 12; i++) {if (possible[i]) {int match = 1;int weight = 0;char c = i + 'A';for (j = 0; j < sizeof(d)/sizeof(Judge); j++) {int p = 0;if (d[j].v == even) continue;if (strchr(d[j].l, c)) {p = (d[j].v == up)?1:-1;}else if (strchr(d[j].r, c)) {p = (d[j].v == up)?-1:1;}if (p == 0 || (weight && weight != p)) {match = 0;break;}weight = p;}if (match) {printf("Find %c\n", c);}}}return 0;}