Submission #00135


ソースコード

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
76
77
78
79
80
81
82
83
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long ll;
struct shop{
int x, y;
bool operator<(const shop other) const{
if(x == x) return y < other.y;
else return x < other.x;
}
};
const ll mod = 1e9+7;
ll modpow(ll a, ll b, ll p = 1e9+7){
if(b == 0) return 1;
if(b % 2 == 0){
ll d = modpow(a, b/2, p);
return (d*d) % p;
}else{
return (a%p * modpow(a, b-1, p)) % p;
}
}
struct ModComb{
vector<ll> po, inv;
ll N;
ModComb(ll n) : N(n), po(n), inv(n) {
po[0] = 1;
for(int i = 1; i < N; i++) po[i] = (po[i-1] * i) % mod;
inv[N-1] = modpow(po[N-1], mod-2, mod);
for(int i = N-2; i >= 0; i--) inv[i] = (inv[i+1] * (i+1)) % mod;
}
ll nCk(ll n, ll k){
if(n < k) return 0;
return (((po[n]*inv[n-k])%mod)*inv[k])%mod;
}
ll nPk(ll n, ll k){
if(n < k) return 0;
return (po[n]*inv[n-k])%mod;
}
ll nHk(ll n, ll k){
if(n == 0 && k == 0) return 1;
return nCk(n+k-1, k);
}
};
int main(){
int w, h, n;
cin >> w >> h >> n;
vector<shop> v;
int x, y;
v.push_back(shop({0,0}));
v.push_back(shop({w-1,h-1}));
for(int i = 0; i < n; i++){
cin >> x >> y;
v.push_back(shop({x,y}));
}
sort(v.begin(), v.end());
ll ans = 1;
ModComb mc(200001);
for(int i = 1; i < v.size(); i++){
int a = v[i].x - v[i-1].x, b = v[i].y - v[i-1].y;
ans *= mc.nCk(a+b, a);
ans %= mod;
}
cout << ans << endl;
return 0;
}

ステータス

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

セット

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

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
input01.in AC 23 ms 3676 KB
1
input02.in AC 28 ms 3460 KB
1
input03.in AC 25 ms 3508 KB
1
input04.in AC 21 ms 3552 KB
1
input05.in AC 22 ms 3716 KB
1
input06.in AC 28 ms 3628 KB
1
input07.in AC 29 ms 3672 KB
1
input08.in AC 22 ms 3708 KB
1
input09.in AC 28 ms 3620 KB
1
input10.in AC 25 ms 3536 KB
1
input11.in AC 22 ms 3572 KB
1
input12.in AC 33 ms 3608 KB
1
input13.in AC 27 ms 3644 KB
1
input14.in AC 25 ms 3552 KB
1
input15.in AC 27 ms 3596 KB
1
input16.in AC 29 ms 3636 KB
1
input17.in AC 35 ms 3672 KB
1
input18.in AC 35 ms 3588 KB
1
input19.in AC 29 ms 3504 KB
1
input20.in AC 28 ms 3672 KB
1
sample.in AC 33 ms 3716 KB
1