제출 #131094

#제출 시각아이디문제언어결과실행 시간메모리
131094maruiiTents (JOI18_tents)C++14
100 / 100
157 ms21644 KiB
#include <bits/stdc++.h>
using namespace std;

const int mod = 1e9 + 7;
int A[3001][3001];

int f(int n, int m) {
	if (n < 0 || m < 0) return 0;
	if (!n || !m) return 1;
	if (n > m) swap(n, m);
	if (A[n][m]) return A[n][m];
	return A[n][m] = (f(n, m - 1) + n * (n - 1) / 2ll * f(n - 2, m - 1) + 4ll * n * f(n - 1, m - 1) + 1ll * n * (m - 1) * f(n - 1, m - 2)) % mod;
}

int main() {
	ios_base::sync_with_stdio(0), cin.tie(0);
	int H, W; cin >> H >> W;
	cout << f(H, W) - 1;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...