Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <climits>#include <cmath>#include <cstdlib>#include <cstdio>#include <algorithm>#include <bitset>#include <functional>#include <iostream>#include <map>#include <queue>#include <stack>#include <string>#include <unordered_map>#include <unordered_set>#include <vector>using namespace std;using llong = long long;using pii = pair<int, int>;using pll = pair<long, long>;// binary index tree#define LASTBIT(x) (x) & (-(x))// a^b % p = ((a % p) ^ b ) % plong pow(long a, long b, long p) {llong ret = 1, base = a % p;while (b > 0) {if (b & 1) ret = (ret * base) % p;base = (base * base) % p;b >>= 1;