1 #include "xs.h" 2 3 int N = 5; 4 5 Piece pieces[]={ 6 { 0, 1, 5,1, { 0,0, 1,0, 1,0, 1,0, 1,0 }}, 7 { 1, 1, 1,5, { 0,0, 0,1, 0,1, 0,1, 0,1 }}, 8 { 2, 1, 5,1, { 0,0, 1,0, 1,0, 1,0, 1,0 }}, 9 { 3, 1, 1,5, { 0,0, 0,1, 0,1, 0,1, 0,1 }}, 10 11 { 0, 0, 4,2, { 0,0, 1,0, 1,0, 1,0, 0,1 }}, 12 { 1, 0, 2,4, { 1,0, 0,1, 0,1, 0,1, -1,0 }}, 13 { 2, 0, 4,2, { 0,0, 0,1, 1,0, 1,0, 1,0 }}, 14 { 3, 0, 2,4, { 0,0, 1,0, -1,1, 0,1, 0,1 }}, 15 16 { 0, 2, 4,2, { 0,0, 0,1, 1,-1, 1,0, 1,0 }}, 17 { 1, 2, 2,4, { 0,0, 1,0, 0,1, 0,1, 0,1 }}, 18 { 2, 2, 4,2, { 0,1, 1,0, 1,0, 1,0, 0,-1}}, 19 { 3, 2, 2,4, { 0,0, 0,1, 0,1, 0,1, 1,0 }}, 20 21 { 0, 7, 3,3, { 0,0, 1,0, 1,0, 0,1, 0,1 }}, 22 { 1, 7, 3,3, { 0,2, 1,0, 1,0, 0,-1, 0,-1}}, 23 { 2, 7, 3,3, { 0,0, 0,1, 0,1, 1,0, 1,0 }}, 24 { 3, 7, 3,3, { 0,2, 0,-1, 0,-1, 1,0, 1,0 }}, 25 26 { 0, 3, 3,2, { 0,0, 1,0, 1,0, -2,1, 1,0 }}, 27 { 1, 3, 2,3, { 0,0, 1,0, -1,1, 1,0, 0,1 }}, 28 { 2, 3, 3,2, { 1,0, 1,0, -2,1, 1,0, 1,0 }}, 29 { 3, 3, 2,3, { 0,0, 0,1, 1,0, -1,1, 1,0 }}, 30 31 { 0, 4, 3,2, { 0,0, 1,0, 1,0, -1,1, 1,0 }}, 32 { 1, 4, 2,3, { 1,0, -1,1, 1,0, -1,1, 1,0 }}, 33 { 2, 4, 3,2, { 0,0, 1,0, -1,1, 1,0, 1,0 }}, 34 { 3, 4, 2,3, { 0,0, 1,0, -1,1, 1,0, -1,1 }}, 35 36 { 0, 7, 3,2, { 0,0, 2,0, -2,1, 1,0, 1,0 }}, 37 { 1, 7, 2,3, { 0,0, 1,0, -1,1, 0,1, 1,0 }}, 38 { 2, 7, 3,2, { 0,0, 1,0, 1,0, -2,1, 2,0 }}, 39 { 3, 7, 2,3, { 0,0, 1,0, 0,1, -1,1, 1,0 }}, 40 41 { 0, 5, 3,3, { 0,0, 1,0, 0,1, 1,0, -1,1 }}, 42 { 1, 5, 3,3, { 2,0, -2,1, 1,0, 1,0, -1,1 }}, 43 { 2, 5, 3,3, { 1,0, -1,1, 1,0, 0,1, 1,0 }}, 44 { 3, 5, 3,3, { 1,0, -1,1, 1,0, 1,0, -2,1 }}, 45 46 { 0, 6, 3,3, { 1,0, 1,0, -2,1, 1,0, 0,1 }}, 47 { 1, 6, 3,3, { 1,0, -1,1, 1,0, 1,0, 0,1 }}, 48 { 2, 6, 3,3, { 1,0, 0,1, 1,0, -2,1, 1,0 }}, 49 { 3, 6, 3,3, { 0,0, 0,1, 1,0, 1,0, -1,1 }}, 50 51 { 0, 0, 4,2, { 0,0, 1,0, 1,0, 1,0, -2,1 }}, 52 { 1, 0, 2,4, { 1,0, -1,1, 1,0, 0,1, 0,1 }}, 53 { 2, 0, 4,2, { 2,0, -2,1, 1,0, 1,0, 1,0 }}, 54 { 3, 0, 2,4, { 0,0, 0,1, 0,1, 1,0, -1,1 }}, 55 56 { 0, 2, 4,2, { 0,0, 1,0, 1,0, 1,0, -1,1 }}, 57 { 1, 2, 2,4, { 1,0, 0,1, -1,1, 1,0, 0,1 }}, 58 { 2, 2, 4,2, { 1,0, -1,1, 1,0, 1,0, 1,0 }}, 59 { 3, 2, 2,4, { 0,0, 0,1, 1,0, -1,1, 0,1 }}, 60 61 { 0, 1, 3,3, { 0,0, 1,0, 0,1, 1,0, 0,1 }}, 62 { 1, 1, 3,3, { 2,0, -1,1, 1,0, -2,1, 1,0 }}, 63 { 2, 1, 3,3, { 0,0, 0,1, 1,0, 0,1, 1,0 }}, 64 { 3, 1, 3,3, { 1,0, 1,0, -2,1, 1,0, -1,1 }}, 65 66 { 0, 3, 3,3, { 0,0, 1,0, 1,0, -1,1, 0,1 }}, 67 { 1, 3, 3,3, { 2,0, -2,1, 1,0, 1,0, 0,1 }}, 68 { 2, 3, 3,3, { 1,0, 0,1, -1,1, 1,0, 1,0 }}, 69 { 3, 3, 3,3, { 0,0, 0,1, 1,0, 1,0, -2,1 }}, 70 71 { 0, 4, 3,3, { 1,0, -1,1, 1,0, 1,0, -1,1 }}, 72 { 1, 4, 3,3, { 1,0, -1,1, 1,0, 1,0, -1,1 }}, 73 { 2, 4, 3,3, { 1,0, -1,1, 1,0, 1,0, -1,1 }}, 74 { 3, 4, 3,3, { 1,0, -1,1, 1,0, 1,0, -1,1 }}, 75 76 { 0, 8, 4,2, { 0,0, 1,0, 0,1, 1,0, 1,0 }}, 77 { 1, 8, 2,4, { 1,0, -1,1, 1,0, -1,1, 0,1 }}, 78 { 2, 8, 4,2, { 0,0, 1,0, 1,0, 0,1, 1,0 }}, 79 { 3, 8, 2,4, { 1,0, 0,1, -1,1, 1,0, -1,1 }}, 80 81 { 0, 9, 4,2, { 2,0, 1,0, -3,1, 1,0, 1,0 }}, 82 { 1, 9, 2,4, { 0,0, 0,1, 0,1, 1,0, 0,1 }}, 83 { 2, 9, 4,2, { 1,0, 1,0, 1,0, -3,1, 1,0 }}, 84 { 3, 9, 2,4, { 0,0, 0,1, 1,0, 0,1, 0,1 }}, 85 86 { 0, 5, 3,3, { 0,0, 0,1, 1,0, 1,0, 0,1 }}, 87 { 1, 5, 3,3, { 1,0, 1,0, -1,1, -1,1, 1,0 }}, 88 { 2, 5, 3,3, { 0,0, 0,1, 1,0, 1,0, 0,1 }}, 89 { 3, 5, 3,3, { 1,0, 1,0, -1,1, -1,1, 1,0 }}, 90 91 { 0, 6, 3,3, { 2,0, -2,1, 1,0, 1,0, -2,1 }}, 92 { 1, 6, 3,3, { 0,0, 1,0, 0,1, 0,1, 1,0 }}, 93 { 2, 6, 3,3, { 2,0, -2,1, 1,0, 1,0, -2,1 }}, 94 { 3, 6, 3,3, { 0,0, 1,0, 0,1, 0,1, 1,0 }}, 95 96 }; 97 98 int NP = nelem(pieces); 99 100