Submission #19895

#TimeUsernameProblemLanguageResultExecution timeMemory
19895isac322창문 (kriii4_C)C++98
3 / 100
1000 ms1720 KiB
#include <iostream> using namespace std; unsigned long long GetGCM(unsigned long long m, unsigned long long n) { unsigned long long q; if(m==0 || n==0) return 0; do{ q = m%n; if(q){ m = n; n = q; } }while(q); return n; } const long long MOD = 1000000007; unsigned long long aNum; unsigned long long solve1(unsigned long long n) { if (n == 1) return aNum; unsigned long long ret = solve1(n >> 1); return (((ret*ret) % MOD) * (n & 1LL ? aNum : 1LL)) % MOD; } unsigned long long solve(unsigned long long a, unsigned long long x) { aNum = a % MOD; return solve1(x); } int main() { unsigned long long H=0,W=0; unsigned long long answer=0,gcm=0; cin>>H>>W; for(unsigned long long i=0; i<H; i++){ for(unsigned long long j=0; j<W; j++){ answer+=(i+1)*(j+1)*(W-j)*(H-i); } } unsigned long long temp=H*(H+1)/2*W*(W+1)/2; answer=answer*9; gcm = GetGCM(answer,temp); if(gcm!=0){ answer/=gcm; temp/=gcm; } cout<<(answer*solve(temp,1000000005))%1000000007<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...