Submission #19715

#TimeUsernameProblemLanguageResultExecution timeMemory
19715exqt창문 (kriii4_C)C++98
3 / 100
0 ms1720 KiB
#include <iostream> #include <algorithm> #include <vector> #include <sstream> #include <fstream> #include <string> #include <map> #include <set> #include <queue> #include <utility> #include <cstdio> #include <cmath> #include <iterator> using namespace std; #define in cin #define out cout #define REP(i,n) for(int i=0; i<n; i++) #define REPE(i,s,e) for(int i=s; i<=e; i++) #define REPV(i,s,e) for(int i=s; i>=e; i--) #define all(v) v.begin(), v.end() #define pb push_back #define isin(a,b,c) ((a)<=(c)&&(c)<=(b)) #define maxn(a,b) ((a)>(b)?(a):(b)) #define minn(a,b) ((a)<(b)?(a):(b)) #define ll long long #define pii pair<ll, ll> #define pdd pair<double, double> #define X first #define Y second ll DV = 1000000007; ll pow(ll a, ll b) { ll t = a; ll res = 1; while(b) { if(b%2) res = (res * t) % DV; t = t % DV; t = (t*t) % DV; b = b >> 1; } return res; } 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) { return ((a%DV)-(b%DV)+2*DV)%DV; } ll add(ll a, ll b) { return (a%DV)+(b%DV)%DV; } int main() { ll w, h; in >> w >> h; ll wS = mul( mul(w, w+1), inv(2) ); ll hS = mul( mul(h, h+1), inv(2) ); ll wS2 = mul( mul(w, w+1), mul(2*w+1, inv(6)) ); ll hS2 = mul( mul(h, h+1), mul(2*h+1, inv(6)) ); ll res = 0; res = add(res, mul( mul(wS, hS), mul(w,h) )); res = sub(res, mul( mul(wS, hS2), mul(w,1) )); res = add(res, mul( mul(wS, hS), mul(w,1) )); res = sub(res, mul( mul(wS2, hS), mul(1,h) )); res = add(res, mul( mul(wS2, hS2), mul(1,1) )); res = sub(res, mul( mul(wS2, hS), mul(1,1) )); res = add(res, mul( mul(wS, hS), mul(1,h) )); res = sub(res, mul( mul(wS, hS2), mul(1,1) )); res = add(res, mul( mul(wS, hS), mul(1,1) )); res = mul(res, mul(inv(hS), inv(wS))); res = (res*9)%DV; out << res; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...