제출 #19731

#제출 시각아이디문제언어결과실행 시간메모리
19731xdoju창문 (kriii4_C)C++14
3 / 100
0 ms1084 KiB
#include <cstdio>
using namespace std;

const long long MOD = 1000000007ll;

long long modpow(long long r, long long n) {
	long long ret = 1;
	while (n > 0) {
		if (n % 2 > 0) {
			ret = (ret * r) % MOD;
		}
		r = (r * r) % MOD;
		n /= 2;
	}
	return ret;
}

long long modinv(long long n) {
	return modpow(n, MOD - 2);
}

long long modprod(long long a, long long b) {
	a = a % MOD;
	b = b % MOD;
	return (a * b) % MOD;
}

long long modprod(long long a, long long b, long long c) {
	c = c % MOD;
	return (modprod(a, b) * c) % MOD;
}

void proc() {
	long long h, w;
	scanf("%lld %lld", &h, &w);
	//w = w % MOD;
	//h = h % MOD;

	long long t = (modprod(w, w + 1, w + 2) * modinv(6)) % MOD;
	long long u = (modprod(h, h + 1, h + 2) * modinv(6)) % MOD;
	long long v = modprod(t, u, 9);

	v = (v * modinv(modprod(w, w + 1))) % MOD;
	v = (v * modinv(modprod(h, h + 1))) % MOD;
	v = (v * 4) % MOD;

	printf("%lld", v);
}

int main() {
	proc();
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...