Submission #19785

#TimeUsernameProblemLanguageResultExecution timeMemory
19785hongjun7창문 (kriii4_C)C++98
3 / 100
0 ms1084 KiB
#include <stdio.h> const int mod = 1e9 + 7; long long f(long long a, long long b) { if (b == 0) return 1; if (b == 1) return a; long long v = f(a, b / 2); v = (v*v) % mod; if (b & 1) v = (v*a) % mod; return v; } long long mul(long long a, long long b) { a %= mod; b %= mod; if (a < 0) a += mod; if (b < 0) b += mod; return (a*b) % mod; } long long div(long long a, long long b) { return (a * f(b, mod - 2)) % mod; } long long n, m; long long p1, q, p2, p3, p4, p, v; int main() { scanf("%lld%lld", &n, &m); n %= mod; m %= mod; q = mul(mul(mul(n, n + 1), m), m + 1); p1 = mul(mul(mul(mul(mul(mul(9, m), m + 1), n), n + 1), n + 1), m + 1); p2 = mul(mul(mul(mul(mul(mul(3, m), m + 1), n), n + 1), 2 * n + 1), -1 - m); p3 = mul(mul(mul(mul(mul(m, m + 1), 2 * m + 1), n), n + 1), 2 * n + 1); p4 = mul(mul(mul(mul(mul(mul(3, m), m + 1), 2 * m + 1), n), n + 1), -n - 1); if (p1 < 0) p1 += mod; if (p2 < 0) p2 += mod; if (p3 < 0) p3 += mod; if (p4 < 0) p4 += mod; p = (p1 + p2 + p3 + p4) % mod; printf("%lld", div(p, q)); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...