Submission #19804

#TimeUsernameProblemLanguageResultExecution timeMemory
19804exqt창문 (kriii4_C)C++98
3 / 100
0 ms1720 KiB
#include <iostream> #include <algorithm> #include <vector> #include <sstream> #include <fstream> #include <iterator> using namespace std; #define in cin #define out cout #define ll unsigned long long ll DV = 1000000007LL; ll pow(ll a, ll b) { ll t = a; ll res = 1LL; while(b) { if(b%2) res = (res * t) % DV; t = t % DV; t = (t*t) % DV; b = b >> 1; } return res%DV; } ll inv(ll a) { return (pow(a, DV-2))%DV; } ll mul(ll a, ll b) { return ((a%DV)*(b%DV))%DV; } ll sub(ll a, ll b) { a += 10LL*DV; b += 10LL*DV; return ((a%DV)-(b%DV)+10LL*DV)%DV; } ll add(ll a, ll b) { a += 10LL*DV; b += 10LL*DV; return ((a%DV)+(b%DV)+10LL*DV)%DV; } int main() { //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); ll w, h; in >> w >> h; w %= DV; h %= DV; ll wS = mul( mul(w, w+1LL), inv(2LL) ); ll hS = mul( mul(h, h+1LL), inv(2LL) ); ll wS2 = mul( mul(w, w+1LL), mul(mul(2LL,w)+1LL, inv(6LL)) ); ll hS2 = mul( mul(h, h+1LL), mul(mul(2LL,h)+1LL, inv(6LL)) ); ll res = 0; res = add(res, mul( mul(wS, hS), mul(w,h) )); res = sub(res, mul( mul(wS, hS2), mul(w,1LL) )); res = add(res, mul( mul(wS, hS), mul(w,1LL) )); res = sub(res, mul( mul(wS2, hS), mul(1LL,h) )); res = add(res, mul( mul(wS2, hS2), mul(1LL,1LL) )); res = sub(res, mul( mul(wS2, hS), mul(1LL,1LL) )); res = add(res, mul( mul(wS, hS), mul(1LL,h) )); res = sub(res, mul( mul(wS, hS2), mul(1LL,1LL) )); res = add(res, mul( mul(wS, hS), mul(1LL,1LL) )); res = mul(res, mul(inv(hS), inv(wS))); res = (res*9LL)%DV; out << res; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...