10#10include15 15 10#10include15 15 10void15 07bit_on(10int*15 n,15 10int15 bit) { 15 *n15 |=15 02115 <<15 bit; } 10bool15 07is_open(10int*15 lock) { 15 02for15 (10int15 i15 =15 020;15 i15 <15 0219;15 ++i) 15 02if15 (lock[i]15 ==15 020b111) 15 02return15 10false; 15 02return15 10true; } 10void15 07reset(10int*15 lock) { 15 lock[15 020]15 =15 020b010; 15 lock[15 021]15 =15 020b010; 15 lock[15 022]15 =15 020b010; 15 lock[15 023]15 =15 020b010; 15 lock[15 024]15 =15 020b010; 15 lock[15 025]15 =15 020b010; 15 lock[15 026]15 =15 020b010; 15 lock[15 027]15 =15 020b111; 15 lock[15 028]15 =15 020b011; 15 lock[15 029]15 =15 020b011; 15 lock[0210]15 =15 020b011; 15 lock[0211]15 =15 020b001; 15 lock[0212]15 =15 020b001; 15 lock[0213]15 =15 020b000; 15 lock[0214]15 =15 020b000; 15 lock[0215]15 =15 020b110; 15 lock[0216]15 =15 020b110; 15 lock[0217]15 =15 020b110; 15 lock[0218]15 =15 020b100; } 10int15 07main() { 15 10int15 lock[0219]; 15 02for15 (10int15 n15 =15 020;15 n15 <15 021024;15 ++n) 15 { 15 reset(lock); 15 02if(n15 &15 021) 15 { 15 bit_toggle(&lock[02315 ],15 020); 15 bit_toggle(&lock[0212],15 021); 15 bit_toggle(&lock[0214],15 020); 15 bit_toggle(&lock[0214],15 021); 15 bit_toggle(&lock[0216],15 021); 15 } 15 02if(n15 &15 022) 15 { 15 bit_toggle(&lock[02315 ],15 022); 15 bit_toggle(&lock[02715 ],15 022); 15 bit_toggle(&lock[0211],15 021); 15 bit_toggle(&lock[0211],15 022); 15 bit_toggle(&lock[0215],15 021); 15 } 15 02if(n15 &15 024) 15 { 15 bit_toggle(&lock[02615 ],15 022); 15 bit_toggle(&lock[02715 ],15 020); 15 bit_toggle(&lock[02715 ],15 021); 15 bit_toggle(&lock[02815 ],15 021); 15 bit_toggle(&lock[0210],15 022); 15 bit_toggle(&lock[0216],15 021); 15 } 15 02if(n15 &15 028) 15 { 15 bit_toggle(&lock[02515 ],15 020); 15 bit_toggle(&lock[02515 ],15 022); 15 bit_toggle(&lock[0211],15 020); 15 bit_toggle(&lock[0212],15 020); 15 } 15 02if(n15 &15 0216) 15 { 15 bit_toggle(&lock[02015 ],15 021); 15 bit_toggle(&lock[02115 ],15 022); 15 bit_toggle(&lock[02215 ],15 020); 15 bit_toggle(&lock[02215 ],15 022); 15 bit_toggle(&lock[02415 ],15 022); 15 bit_toggle(&lock[02515 ],15 021); 15 bit_toggle(&lock[0217],15 022); 15 bit_toggle(&lock[0218],15 021); 15 } 15 02if(n15 &15 0232) 15 { 15 bit_toggle(&lock[02415 ],15 021); 15 bit_toggle(&lock[02815 ],15 020); 15 bit_toggle(&lock[02915 ],15 020); 15 bit_toggle(&lock[0214],15 022); 15 bit_toggle(&lock[0215],15 022); 15 bit_toggle(&lock[0218],15 020); 15 } 15 02if(n15 &15 0264) 15 { 15 bit_toggle(&lock[02115 ],15 020); 15 bit_toggle(&lock[02315 ],15 021); 15 bit_toggle(&lock[02815 ],15 022); 15 bit_toggle(&lock[0210],15 021); 15 bit_toggle(&lock[0213],15 021); 15 bit_toggle(&lock[0217],15 020); 15 bit_toggle(&lock[0218],15 022); 15 } 15 02if(n15 &15 02128) 15 { 15 bit_toggle(&lock[02215 ],15 021); 15 bit_toggle(&lock[02615 ],15 020); 15 bit_toggle(&lock[0210],15 020); 15 bit_toggle(&lock[0216],15 020); 15 } 15 02if(n15 &15 02256) 15 { 15 bit_toggle(&lock[02115 ],15 021); 15 bit_toggle(&lock[02415 ],15 020); 15 bit_toggle(&lock[02615 ],15 021); 15 bit_toggle(&lock[02915 ],15 022); 15 bit_toggle(&lock[0212],15 022); 15 bit_toggle(&lock[0213],15 020); 15 bit_toggle(&lock[0213],15 022); 15 } 15 02if(n15 &15 02512) 15 { 15 bit_toggle(&lock[02015 ],15 020); 15 bit_toggle(&lock[02015 ],15 022); 15 bit_toggle(&lock[02915 ],15 021); 15 bit_toggle(&lock[0215],15 020); 15 bit_toggle(&lock[0216],15 022); 15 } 15 02if15 (is_open(lock)) 15 { 15 printf(05"05%d %010b05\n05",15 n,15 n); 15 } 15 } }