Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#include <unordered_set>using namespace std;typedef long long LL;inline LL extend_gcd(LL a,LL b,LL &x,LL &y){if(a == 0 && b == 0)return -1ll;if(b == 0){x = 1ll;y = 0ll;return a;}LL d = extend_gcd(b, a % b, y, x);y -= a / b * x;return d;}inline LL mod_reverse(LL a,LL n){LL x, y, d = extend_gcd(a, n, x, y);if(d == 1)return (x % n + n) % n;elsereturn -1ll;}