/* -*- coding: utf-8 -*- * * 3184.cc: No.3184 Make Same - yukicoder */ #include #include #include using namespace std; /* constant */ const int MAX_N = 200000; const int BN = 30; /* typedef */ using pii = pair; /* global variables */ int as[MAX_N]; pii ops[BN]; /* subroutines */ /* main */ int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", as + i); int m = 0; for (int i = BN - 1; i >= 0; i--) { int r = 0; while (r < n && ! ((as[r] >> i) & 1)) r++; if (r > 0 && r < n) { ops[m++] = {r, i}; for (int j = 0; j < r; j++) as[j] |= (1 << i); sort(as, as + n); } } printf("%d\n", m); for (int i = 0; i < m; i++) { auto [r, j] = ops[i]; printf("1 %d %d\n", r, 1 << j); } return 0; }