Submission #3724319


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

#define REP(i,n) for(int i=0; i<int(n); i++)
#define FOR(i,m,n) for(int i=int(m); i<int(n); i++)
#define ALL(obj) (obj).begin(),(obj).end()
#define VI vector<int>
#define VLL vector<long long>
#define VVI vector<vector<int>>
#define VVLL vector<vector<long long>>
#define VC vector<char>
#define VS vector<string>
#define VVS vector<vector<string>>
#define VVC vector<vector<char>>
#define fore(i,a) for(auto &i:a)
typedef long long ll;
const int  INF = 2147483647;
const ll INFL = 9223372036854775807;
const ll mod = 1000000007;
const int MAX = 510000;

long long fac[MAX], finv[MAX], inv[MAX];


void COMinit() {
	fac[0] = fac[1] = 1;
	finv[0] = finv[1] = 1;
	inv[1] = 1;
	for (int i = 2; i < MAX; i++) {
		fac[i] = fac[i - 1] * i % mod;
		inv[i] = mod - inv[mod%i] * (mod / i) % mod;
		finv[i] = finv[i - 1] * inv[i] % mod;
	}
}

long long COM(int n, int k) {
	if (n < k) return 0;
	if (n < 0 || k < 0) return 0;
	return fac[n] * (finv[k] * finv[n - k] % mod) % mod;
}

int main() {
	COMinit();
	int h, w, a, b;
	cin >> h >> w >> a >> b;
	ll res = 0;
	REP(i, h - a) {
		res += COM(b - 1 + i, b - 1)*COM(w - b - 1 + h - 1 - i, w - b - 1);
		res %= mod;
	}
	cout << res << endl;

	return 0;
}

Submission Info

Submission Time
Task D - Iroha and a Grid
User toku
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1295 Byte
Status AC
Exec Time 21 ms
Memory 12160 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 26
Set Name Test Cases
Sample subtask0_01.txt, subtask0_02.txt, subtask0_03.txt, subtask0_04.txt
All subtask0_01.txt, subtask0_02.txt, subtask0_03.txt, subtask0_04.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_max.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_max.txt
Case Name Status Exec Time Memory
subtask0_01.txt AC 20 ms 12160 KB
subtask0_02.txt AC 19 ms 12160 KB
subtask0_03.txt AC 19 ms 12160 KB
subtask0_04.txt AC 20 ms 12160 KB
subtask1_01.txt AC 19 ms 12160 KB
subtask1_02.txt AC 19 ms 12160 KB
subtask1_03.txt AC 20 ms 12160 KB
subtask1_04.txt AC 19 ms 12160 KB
subtask1_05.txt AC 19 ms 12160 KB
subtask1_06.txt AC 19 ms 12160 KB
subtask1_07.txt AC 19 ms 12160 KB
subtask1_08.txt AC 19 ms 12160 KB
subtask1_09.txt AC 19 ms 12160 KB
subtask1_10.txt AC 19 ms 12160 KB
subtask1_max.txt AC 19 ms 12160 KB
subtask2_01.txt AC 19 ms 12160 KB
subtask2_02.txt AC 19 ms 12160 KB
subtask2_03.txt AC 19 ms 12160 KB
subtask2_04.txt AC 20 ms 12160 KB
subtask2_05.txt AC 19 ms 12160 KB
subtask2_06.txt AC 21 ms 12160 KB
subtask2_07.txt AC 20 ms 12160 KB
subtask2_08.txt AC 20 ms 12160 KB
subtask2_09.txt AC 21 ms 12160 KB
subtask2_10.txt AC 20 ms 12160 KB
subtask2_max.txt AC 20 ms 12160 KB