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