template <typename T> inlinevoidread(T &x){ x = 0; int f = 1; char c = getchar(); for (; !isdigit(c); c = getchar()) if (c == '-') f = -f; for (; isdigit(c); c = getchar()) x = x * 10 + c - '0'; x *= f; }
#define LOCAL #include<bits/stdc++.h> #define ll long long usingnamespace std;
constint N = 200010; constint INF = 0x3fffffff;
template <typename T> inlinevoidread(T &x){ x = 0; int f = 1; char c = getchar(); for (; !isdigit(c); c = getchar()) if (c == '-') f = -f; for (; isdigit(c); c = getchar()) x = x * 10 + c - '0'; x *= f; }
int n, k, vis[N]; ll f[N], ans;
vector <int> pre[N];
intmain(){ read(n); for (int i = 1; i <= n; ++ i) { read(f[i]), read(k); for (int j = 1, x; j <= k; ++ j) read(x), pre[i].push_back(x); } vis[n] = 1; for (int i = n; i >= 1; -- i) if (vis[i]) { ans += f[i]; for (auto x : pre[i]) vis[x] = 1; } printf("%lld", ans); return0; }
template <typename T> inlinevoidread(T &x){ x = 0; int f = 1; char c = getchar(); for (; !isdigit(c); c = getchar()) if (c == '-') f = -f; for (; isdigit(c); c = getchar()) x = x * 10 + c - '0'; x *= f; }
template <typename T> inline T Abs(const T &x){return x < 0 ? -x : x;}
structTown {int x, y;} a[N];
int n, cnt;
map <pair <int, int>, bool> m;
intgcd(int x, int y){return y ? gcd(y, x % y) : x;}
intmain(){ read(n); for (int i = 1; i <= n; ++ i) read(a[i].x), read(a[i].y); for (int i = 1; i <= n; ++ i) for (int j = 1; j <= n; ++ j) { if (i == j) continue; int dx = a[i].x - a[j].x; int dy = a[i].y - a[j].y; int g = gcd(Abs(dx), Abs(dy)); if (!m[mp(dx / g, dy / g)]) ++ cnt, m[mp(dx / g, dy / g)] = 1; } printf("%d", cnt); return0; }
constint N = 500010; constint MOD = 998244353; constint INF = 0x3fffffff;
template <typename T> inlinevoidread(T &x){ x = 0; int f = 1; char c = getchar(); for (; !isdigit(c); c = getchar()) if (c == '-') f = -f; for (; isdigit(c); c = getchar()) x = x * 10 + c - '0'; x *= f; }
structEdge {int u, v, nxt;} e[N];
intecnt(1), head[N], d[N], n, m, vis[N], p_num, e_num, ans;
inlinevoidadd_edge(int u, int v){ e[ecnt].u = u, e[ecnt].v = v, ++ d[u]; e[ecnt].nxt = head[u], head[u] = ecnt ++; }
voiddfs(int x){ vis[x] = 1; e_num += d[x]; ++ p_num; for (int i = head[x]; i; i = e[i].nxt) if (!vis[e[i].v]) dfs(e[i].v); }
intmain(){ read(n), read(m); ans = 1; for (int i = 1; i <= m; ++ i) { int u, v; read(u), read(v); add_edge(u, v), add_edge(v, u); } for (int i = 1; i <= n; ++ i) if (!vis[i]) { p_num = 0, e_num = 0; dfs(i); if (e_num == (p_num << 1)) (ans *= 2) %= MOD; else {ans = 0; break;} } printf("%d", ans); return0; }
constint N = 110; constint MOD = 998244353; constint INF = 0x3fffffff;
template <typename T> inlinevoidread(T &x){ x = 0; int f = 1; char c = getchar(); for (; !isdigit(c); c = getchar()) if (c == '-') f = -f; for (; isdigit(c); c = getchar()) x = x * 10 + c - '0'; x *= f; }
int n, k, fac[N], fac_p[N][N], res, inv_fac[N], inv_fac_p[N][N], ans;
inlinevoidmadd(int &x, int y){x = x + y < MOD ? x + y : x + y - MOD;} intgcd(int x, int y){return y ? gcd(y, x % y) : x;} inlineintlcm(int x, int y){return (1ll * x * y / gcd(x, y)) % MOD;}
inlineintfpow(int x, int y){ int res = 1; while (y) { if (y & 1) res = 1ll * res * x % MOD; y >>= 1; x = 1ll * x * x % MOD; } return res; }
inlinevoidcalc(int val, int num){ val = fpow(val, k); madd(ans, 1ll * val * num % MOD); }
voiddfs(int rst, int lmt, int val, int num){ if (!rst) {calc(val, num); return;} if (rst < lmt) return; for (int i = lmt; i <= rst; ++ i) for (int j = 1; i * j <= rst; ++ j) { int new_num = 1ll * num * inv_fac_p[i][j] % MOD; new_num = 1ll * new_num * inv_fac[j] % MOD * fac_p[i - 1][j] % MOD; dfs(rst - i * j, i + 1, lcm(val, i), new_num); } }
intmain(){ read(n), read(k); fac[0] = 1; for (int i = 1; i <= n; ++ i) fac[i] = 1ll * fac[i - 1] * i % MOD; for (int i = 0; i <= n; ++ i) for (int j = 0; j <= n; ++ j) fac_p[i][j] = fpow(fac[i], j); for (int i = 0; i <= n; ++ i) inv_fac[i] = fpow(fac[i], MOD - 2); for (int i = 0; i <= n; ++ i) for (int j = 0; j <= n; ++ j) inv_fac_p[i][j] = fpow(fac_p[i][j], MOD - 2); dfs(n, 1, 1, fac[n]); printf("%d", ans); return0; }
template <typename T> inlinevoidread(T &x){ x = 0; int f = 1; char c = getchar(); for (; !isdigit(c); c = getchar()) if (c == '-') f = -f; for (; isdigit(c); c = getchar()) x = x * 10 + c - '0'; x *= f; }
voidMAIN(){ for (int i = 1; i <= 5; ++ i) read(a[i]); for (int i = 1; i <= 5; ++ i) read(b[i]); a[0] = b[0] = 0; pick(5, 5); pick(4, 4); pick(4, 5); pick(3, 3); pick(3, 5); pick(3, 4); for (int i = 5; i >= 2; -- i) pick(2, i); for (int i = 5; i >= 1; -- i) pick(1, i); for (int i = 1; i <= 5; ++ i) if (a[i]) {puts("No"); return;} puts("Yes"); }