#include <cstdio>
#include <algorithm>
#define mod 1000000007
#define ll long long
using namespace std;
ll h,w,cnt,a,b,s,now;
ll table[100];
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); cnt%=mod;
a=(((w*(w+1))%mod)*(w+2))%mod; a*=((((h*(h+1))%mod)*(h+2))%mod); a%=mod; cnt*=36; cnt%=mod; a*=9; a%=mod;
now=__gcd(a,cnt); a/=now; cnt/=now;
b=pow(cnt,mod-2);
printf("%lld",(a*b)%mod*cnt);
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
1084 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Halted |
0 ms |
0 KB |
- |