#include #include #include using namespace std; long long modexp(long long number, long long power, long long modulus) { if (power==0) return 1LL % modulus; if (power==1) return number % modulus; long long tmp = modexp(number,power/2,modulus); tmp = (tmp*tmp) % modulus; if (power&1) tmp = (tmp*number) % modulus; return tmp; } bool distless(const pair &A, const pair &B) { return A.first + A.second < B.first + B.second; } int main() { int R, S, N, K, P=1000000009; scanf("%d%d%d", &R, &S, &N); vector fact(R+S+2); fact[0]=fact[1]=1; for (int i=2; i inverse(R+S+2); for (int i=0; i > prekazky; for (int k=0; k G(K+1); for (int k=0; k<=K; ++k) { int dx = prekazky[k].first, dy = prekazky[k].second; G[k] = (((1LL * fact[dx+dy] * inverse[dx]) % P) * inverse[dy]) % P; } for (int k=0; k