Submission #3727939
Source Code Expand
//include //------------------------------------------ #include <vector> #include <list> #include <map> #include <climits> #include <set> #include <deque> #include <stack> #include <bitset> #include <algorithm> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <cctype> #include <string> #include <cstring> #include <ctime> #include <queue> #include <random> #include <complex> #include <regex> using namespace std; #define SHOW_VECTOR(v) {std::cerr << #v << "\t:";for(const auto& xxx : v){std::cerr << xxx << " ";}std::cerr << "\n";} #define SHOW_MAP(v){std::cerr << #v << endl; for(const auto& xxx: v){std::cerr << xxx.first << " " << xxx.second << "\n";}} constexpr long long MOD = 1e9 + 7; long long fac[400010]; long long inv[400010]; long long pow_mod(long long n, long long p) { long long ret = 1; while (p > 0) { if (p & 1) ret = (ret * n) % MOD; n = (n * n) % MOD; p >>= 1; } return ret; } void prepare() { fac[0] = fac[1] = 1LL; inv[0] = inv[1] = 1LL; for (long long i = 2; i <= 400000; i++) { fac[i] = fac[i - 1] * i; fac[i] %= MOD; inv[i] = pow_mod(fac[i], MOD - 2LL); } } long long ncr_mod(long long n, long long r) { return fac[n] * inv[n - r] % MOD * inv[r] % MOD; } int main() { long long H, W, A, B; cin >> H >> W >> A >> B; prepare(); long long ans = 0; for (long long w = B; w < W; w++) { long long w1 = w; long long h1 = (H - A - 1); long long sum1 = ncr_mod(w1 + h1, w1); long long w2 = W - w1 - 1; long long h2 = A - 1; long long sum2 = ncr_mod(w2 + h2, w2); ans += (sum1 * sum2) % MOD; ans %= MOD; } cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Iroha and a Grid |
User | ganyariya |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 2084 Byte |
Status | AC |
Exec Time | 65 ms |
Memory | 6528 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
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 | 64 ms | 6528 KB |
subtask0_02.txt | AC | 64 ms | 6528 KB |
subtask0_03.txt | AC | 64 ms | 6528 KB |
subtask0_04.txt | AC | 65 ms | 6528 KB |
subtask1_01.txt | AC | 64 ms | 6528 KB |
subtask1_02.txt | AC | 64 ms | 6528 KB |
subtask1_03.txt | AC | 64 ms | 6528 KB |
subtask1_04.txt | AC | 64 ms | 6528 KB |
subtask1_05.txt | AC | 64 ms | 6528 KB |
subtask1_06.txt | AC | 64 ms | 6528 KB |
subtask1_07.txt | AC | 65 ms | 6528 KB |
subtask1_08.txt | AC | 64 ms | 6528 KB |
subtask1_09.txt | AC | 64 ms | 6528 KB |
subtask1_10.txt | AC | 64 ms | 6528 KB |
subtask1_max.txt | AC | 64 ms | 6528 KB |
subtask2_01.txt | AC | 64 ms | 6528 KB |
subtask2_02.txt | AC | 64 ms | 6528 KB |
subtask2_03.txt | AC | 64 ms | 6528 KB |
subtask2_04.txt | AC | 64 ms | 6528 KB |
subtask2_05.txt | AC | 64 ms | 6528 KB |
subtask2_06.txt | AC | 65 ms | 6528 KB |
subtask2_07.txt | AC | 64 ms | 6528 KB |
subtask2_08.txt | AC | 65 ms | 6528 KB |
subtask2_09.txt | AC | 65 ms | 6528 KB |
subtask2_10.txt | AC | 65 ms | 6528 KB |
subtask2_max.txt | AC | 64 ms | 6528 KB |