Submission #19685

#TimeUsernameProblemLanguageResultExecution timeMemory
19685gs14004창문 (kriii4_C)C++14
3 / 100
0 ms1720 KiB
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <limits.h> #include <stack> #include <queue> #include <map> #include <set> #include <algorithm> #include <string> #include <functional> #include <vector> #include <numeric> #include <deque> #include <utility> #include <bitset> #include <iostream> using namespace std; typedef long long lint; typedef long double llf; typedef pair<int, int> pi; const int mod = 1e9 + 7; lint ipow(lint x, lint p){ lint ret = 1, piv = x % mod; while(p){ if(p&1) ret *= piv; piv *= piv; ret %= mod; piv %= mod; p >>= 1; } return ret; } lint sum1(lint x){ x %= mod; return (x * (x+1) / 2) % mod; } lint sum2(lint x){ x %= mod; lint tmp = sum1(x) * (2 * x + 1); tmp %= mod; return tmp * ipow(3, mod - 2) % mod; } int main(){ lint w, h; cin >> w >> h; lint ret1 = (w % mod + 1) * sum1(w), ret2 = (h % mod + 1) * sum1(h); ret1 += mod - sum2(w); ret2 += mod - sum2(h); ret1 %= mod, ret2 %= mod; lint ret = ret1 * ret2 % mod; ret *= 9ll * ipow(sum1(h) * sum1(w) % mod, mod - 2) % mod; ret %= mod; cout << ret; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...