Submission #19808

#TimeUsernameProblemLanguageResultExecution timeMemory
19808chan492811창문 (kriii4_C)C++98
3 / 100
0 ms1160 KiB
#include <cstdio> #include <algorithm> #define mod 1000000007 #define ll long long using namespace std; ll h,w,cnt,a,b,s,now; ll table[10000]; void make_table(ll a){ int i; table[0]=a%mod; for(i=1;i<32;i++) table[i]=(table[i-1]*table[i-1])%mod; } ll pow(ll a,ll s){ ll i,now=1,res=1; make_table(a); for(i=0;s;i++){ if(s&now) res*=table[i],res%=mod,s-=now; now*=2; } return res; } int main(){ scanf("%lld %lld",&h,&w); h%=mod; w%=mod; cnt=(h*(h+1)/2)%mod; cnt*=(w*(w+1)/2)%mod; cnt%=mod; if(cnt==0) cnt=mod; a=(((w*(w+1))%mod)*(w+2))%mod; a*=((((h*(h+1))%mod)*(h+2))%mod); a%=mod; cnt*=36; cnt%=mod; if(!cnt) cnt=mod; a*=9; a%=mod; if(!a) a=mod; now=__gcd(a,cnt); a/=now; cnt/=now; b=pow(cnt,mod-2); printf("%lld",(a*b)%mod); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...