| 15 | clear(); |
| 16 | } |
| 17 | void insert(T x) { |
| 18 | for (int i = B - 1; i >= 0; i--) { |
| 19 | if (x >> i & 1) { |
| 20 | if (basis[i]) x ^= basis[i]; |
| 21 | else { |
| 22 | basis[i] = x; |
| 23 | sz++; |
| 24 | break; |
| 25 | } |
| 26 | } |
| 27 | } |
| 28 | } |
| 29 | // is there any subset having xor = x |
| 30 | bool can(T x) { |
| 31 | for(int i = B - 1; i >= 0; i--) { |