Submission #00102


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include<bits/stdc++.h>
using namespace std;
using int64= long long;
struct Combination {
int mod;
vector< int64_t > mfact, rfact;
Combination(int sz, int mod) : mfact(sz + 1), rfact(sz + 1), mod(mod) {
mfact[0] = 1;
for(int i = 1; i < mfact.size(); i++) {
mfact[i] = mfact[i - 1] * i % mod;
}
rfact[sz] = inv(mfact[sz]);
for(int i = sz - 1; i >= 0; i--) {
rfact[i] = rfact[i + 1] * (i + 1) % mod;
}
}
int64_t fact(int k) const {
return (mfact[k]);
}
int64_t pow(int64_t x, int64_t n) const {
int64_t ret = 1;
while(n > 0) {
if(n & 1) (ret *= x) %= mod;
(x *= x) %= mod;
n >>= 1;
}
return (ret);
}
int64_t inv(int64_t x) const {
return (pow(x, mod - 2));
}
int64_t P(int n, int r) const {
if(r < 0 || n < r) return (0);
return (mfact[n] * rfact[n - r] % mod);
}
int64_t C(int p, int q) const {
if(q < 0 || p < q) return (0);
return (mfact[p] * rfact[q] % mod * rfact[p - q] % mod);
}
int64_t H(int n, int r) const {
if(n < 0 || r < 0) return (0);
return (r == 0 ? 1 : C(n + r - 1, r));
}
};
const int mod = 1e9 + 7;
int main() {
int W, H, N;
cin >> W >> H >> N;
--W, --H;
int64 mul = 1;
int X = 0, Y = 0;
Combination uku(H + W, mod);
while(N--) {
int NX, NY;
cin >> NX >> NY;
(mul *= uku.C(NX - X + NY - Y, NX - X)) %= mod;
X = NX;
Y = NY;
}
(mul *= uku.C(H - X + W - Y, W - X)) %= mod;
cout << mul << endl;
}

ステータス

項目 データ
問題 0006 - 寄り道
ユーザー名 ei1333
投稿日時 2018-11-24 14:31:14
言語 C++11
状態 Accepted
得点 400
ソースコード長 1572 Byte
最大実行時間 83 ms
最大メモリ使用量 31920 KB

セット

セット 得点 Cases
1 ALL 400 / 400 *

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
input01.in AC 19 ms 600 KB
1
input02.in AC 18 ms 668 KB
1
input03.in AC 17 ms 604 KB
1
input04.in AC 22 ms 800 KB
1
input05.in AC 26 ms 644 KB
1
input06.in AC 21 ms 748 KB
1
input07.in AC 29 ms 1676 KB
1
input08.in AC 31 ms 1628 KB
1
input09.in AC 24 ms 3620 KB
1
input10.in AC 32 ms 3544 KB
1
input11.in AC 46 ms 16008 KB
1
input12.in AC 49 ms 16092 KB
1
input13.in AC 36 ms 9136 KB
1
input14.in AC 37 ms 9080 KB
1
input15.in AC 83 ms 31808 KB
1
input16.in AC 80 ms 31880 KB
1
input17.in AC 76 ms 31828 KB
1
input18.in AC 81 ms 31772 KB
1
input19.in AC 74 ms 31844 KB
1
input20.in AC 81 ms 31920 KB
1
sample.in AC 20 ms 640 KB
1