{"id":"xwxflq","deleted":false,"future_paste":false,"expired":false,"language":"c","created_at":"2025-03-16 18:07:00","expires_at":null,"content":"#include <stdbool.h>\r\n#include <stdio.h>\r\n\r\nvoid bit_on(int* n, int bit)\r\n{\r\n\t*n |= 1 << bit;\r\n}\r\n\r\nbool is_open(int* lock)\r\n{\r\n\tfor (int i = 0; i < 19; ++i)\r\n\t\tif (lock[i] == 0b111)\r\n\t\t\treturn false;\r\n\treturn true;\r\n}\r\n\r\nvoid reset(int* lock)\r\n{\r\n\tlock[ 0] = 0b010;\r\n\tlock[ 1] = 0b010;\r\n\tlock[ 2] = 0b010;\r\n\tlock[ 3] = 0b010;\r\n\tlock[ 4] = 0b010;\r\n\tlock[ 5] = 0b010;\r\n\tlock[ 6] = 0b010;\r\n\tlock[ 7] = 0b111;\r\n\tlock[ 8] = 0b011;\r\n\tlock[ 9] = 0b011;\r\n\tlock[10] = 0b011;\r\n\tlock[11] = 0b001;\r\n\tlock[12] = 0b001;\r\n\tlock[13] = 0b000;\r\n\tlock[14] = 0b000;\r\n\tlock[15] = 0b110;\r\n\tlock[16] = 0b110;\r\n\tlock[17] = 0b110;\r\n\tlock[18] = 0b100;\r\n}\r\n\r\nint main()\r\n{\r\n\tint lock[19];\r\n\r\n\tfor (int n = 0; n < 1024; ++n)\r\n\t{\r\n\t\treset(lock);\r\n\r\n\t\tif(n & 1)\r\n\t\t{\r\n\t\t\tbit_toggle(&lock[3 ], 0);\r\n\t\t\tbit_toggle(&lock[12], 1);\r\n\t\t\tbit_toggle(&lock[14], 0);\r\n\t\t\tbit_toggle(&lock[14], 1);\r\n\t\t\tbit_toggle(&lock[16], 1);\r\n\t\t}\r\n\t\tif(n & 2)\r\n\t\t{\r\n\t\t\tbit_toggle(&lock[3 ], 2);\r\n\t\t\tbit_toggle(&lock[7 ], 2);\r\n\t\t\tbit_toggle(&lock[11], 1);\r\n\t\t\tbit_toggle(&lock[11], 2);\r\n\t\t\tbit_toggle(&lock[15], 1);\r\n\t\t}\r\n\t\tif(n & 4)\r\n\t\t{\r\n\t\t\tbit_toggle(&lock[6 ], 2);\r\n\t\t\tbit_toggle(&lock[7 ], 0);\r\n\t\t\tbit_toggle(&lock[7 ], 1);\r\n\t\t\tbit_toggle(&lock[8 ], 1);\r\n\t\t\tbit_toggle(&lock[10], 2);\r\n\t\t\tbit_toggle(&lock[16], 1);\r\n\t\t}\r\n\t\tif(n & 8)\r\n\t\t{\r\n\t\t\tbit_toggle(&lock[5 ], 0);\r\n\t\t\tbit_toggle(&lock[5 ], 2);\r\n\t\t\tbit_toggle(&lock[11], 0);\r\n\t\t\tbit_toggle(&lock[12], 0);\r\n\t\t}\r\n\t\tif(n & 16)\r\n\t\t{\r\n\t\t\tbit_toggle(&lock[0 ], 1);\r\n\t\t\tbit_toggle(&lock[1 ], 2);\r\n\t\t\tbit_toggle(&lock[2 ], 0);\r\n\t\t\tbit_toggle(&lock[2 ], 2);\r\n\t\t\tbit_toggle(&lock[4 ], 2);\r\n\t\t\tbit_toggle(&lock[5 ], 1);\r\n\t\t\tbit_toggle(&lock[17], 2);\r\n\t\t\tbit_toggle(&lock[18], 1);\r\n\t\t}\r\n\t\tif(n & 32)\r\n\t\t{\r\n\t\t\tbit_toggle(&lock[4 ], 1);\r\n\t\t\tbit_toggle(&lock[8 ], 0);\r\n\t\t\tbit_toggle(&lock[9 ], 0);\r\n\t\t\tbit_toggle(&lock[14], 2);\r\n\t\t\tbit_toggle(&lock[15], 2);\r\n\t\t\tbit_toggle(&lock[18], 0);\r\n\t\t}\r\n\t\tif(n & 64)\r\n\t\t{\r\n\t\t\tbit_toggle(&lock[1 ], 0);\r\n\t\t\tbit_toggle(&lock[3 ], 1);\r\n\t\t\tbit_toggle(&lock[8 ], 2);\r\n\t\t\tbit_toggle(&lock[10], 1);\r\n\t\t\tbit_toggle(&lock[13], 1);\r\n\t\t\tbit_toggle(&lock[17], 0);\r\n\t\t\tbit_toggle(&lock[18], 2);\r\n\t\t}\r\n\t\tif(n & 128)\r\n\t\t{\r\n\t\t\tbit_toggle(&lock[2 ], 1);\r\n\t\t\tbit_toggle(&lock[6 ], 0);\r\n\t\t\tbit_toggle(&lock[10], 0);\r\n\t\t\tbit_toggle(&lock[16], 0);\r\n\t\t}\r\n\t\tif(n & 256)\r\n\t\t{\r\n\t\t\tbit_toggle(&lock[1 ], 1);\r\n\t\t\tbit_toggle(&lock[4 ], 0);\r\n\t\t\tbit_toggle(&lock[6 ], 1);\r\n\t\t\tbit_toggle(&lock[9 ], 2);\r\n\t\t\tbit_toggle(&lock[12], 2);\r\n\t\t\tbit_toggle(&lock[13], 0);\r\n\t\t\tbit_toggle(&lock[13], 2);\r\n\t\t}\r\n\t\tif(n & 512)\r\n\t\t{\r\n\t\t\tbit_toggle(&lock[0 ], 0);\r\n\t\t\tbit_toggle(&lock[0 ], 2);\r\n\t\t\tbit_toggle(&lock[9 ], 1);\r\n\t\t\tbit_toggle(&lock[15], 0);\r\n\t\t\tbit_toggle(&lock[16], 2);\r\n\t\t}\r\n\r\n\t\tif (is_open(lock))\r\n\t\t{\r\n\t\t\tprintf(\"%d %010b\\n\", n, n);\r\n\t\t}\r\n\t}\r\n}\r\n"}