Submission #4624494


Source Code Expand

#include <iostream>
#include <string>
#include <utility>
#include <algorithm>
#include <map>
#include <set>
#include <vector>
#include <cmath>
#include <cstdlib>
#include <queue>
#include <stack>
#include <iomanip>


using namespace std;

#define REP(i, n) for(ll i = 0;i < n;i++)
#define REPR(i, n) for(ll i = n;i >= 0;i--)
#define FOR(i, m, n) for(ll i = m;i < n;i++)
#define FORR(i, m, n) for(ll i = m;i >= n;i--)
#define REPO(i, n) for(ll i = 1;i <= n;i++)
#define ll long long
#define INF 1999999999
#define MINF -1999999999
#define INF64 1999999999999999999
#define ALL(n) n.begin(),n.end()
#define MOD 1000000007




ll h, w, a, b, f[310000], ans = 0;

ll kn(ll aa, ll bb) {
	aa %= MOD;
	ll res = 1;
	while (bb > 0) {
		if (bb % 2 == 1)res *= aa;
		aa *= aa;
		bb /= 2;
		aa %= MOD;
		res %= MOD;
	}
	return res;
}

ll com(ll aa, ll bb) {
	return f[aa] * kn(f[aa - bb] * f[bb], MOD - 2) % MOD;
}

int main() {
	f[0] = 1;
	REPO(i, 300000)f[i] = f[i - 1] * i % MOD;
	cin >> h >> w >> a >> b;
	FOR(i, b + 1, w + 1) {
		ans += com(i + h - a - 2, h - a - 1) * com(a - 1 + w - i, a - 1);
		ans %= MOD;
	}
	cout << ans % MOD << endl;
}

Submission Info

Submission Time
Task D - Iroha and a Grid
User kenken714
Language C++14 (GCC 5.4.1)
Score 400
Code Size 1196 Byte
Status AC
Exec Time 33 ms
Memory 2560 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 4 ms 2560 KB
subtask0_02.txt AC 4 ms 2560 KB
subtask0_03.txt AC 3 ms 2560 KB
subtask0_04.txt AC 17 ms 2560 KB
subtask1_01.txt AC 4 ms 2560 KB
subtask1_02.txt AC 4 ms 2560 KB
subtask1_03.txt AC 4 ms 2560 KB
subtask1_04.txt AC 4 ms 2560 KB
subtask1_05.txt AC 4 ms 2560 KB
subtask1_06.txt AC 4 ms 2560 KB
subtask1_07.txt AC 4 ms 2560 KB
subtask1_08.txt AC 3 ms 2560 KB
subtask1_09.txt AC 4 ms 2560 KB
subtask1_10.txt AC 4 ms 2560 KB
subtask1_max.txt AC 3 ms 2560 KB
subtask2_01.txt AC 5 ms 2560 KB
subtask2_02.txt AC 4 ms 2560 KB
subtask2_03.txt AC 4 ms 2560 KB
subtask2_04.txt AC 5 ms 2560 KB
subtask2_05.txt AC 4 ms 2560 KB
subtask2_06.txt AC 33 ms 2560 KB
subtask2_07.txt AC 4 ms 2560 KB
subtask2_08.txt AC 20 ms 2560 KB
subtask2_09.txt AC 14 ms 2560 KB
subtask2_10.txt AC 33 ms 2560 KB
subtask2_max.txt AC 6 ms 2560 KB