fork(1) download
  1. #include<bits/stdc++.h>
  2. #define int long long
  3. #define M 1000000007
  4. using namespace std;
  5.  
  6. signed main(){
  7. ios::sync_with_stdio(0);
  8. cin.tie(0);
  9. cout.tie(0);
  10.  
  11. int t;
  12. cin >> t;
  13. while(t--)
  14. {
  15. int n, m, q, a, b;
  16. cin >> n >> m >> q;
  17. vector<vector<int>> v(n, vector<int>(m, 0));
  18. while(q--)
  19. {
  20. int a, b;
  21. cin >> a >> b;
  22. v[a][b] = -1;
  23. }
  24. for(int i = 0;i < n;i++)
  25. {
  26. if(v[i][0] == -1)
  27. {
  28. v[i][0]= 0;
  29. break;
  30. }
  31. v[i][0] = 1;
  32. }
  33. for(int i = 0;i < m;i++)
  34. {
  35. if(v[0][i] == -1)
  36. {
  37. v[0][i]= 0;
  38. break;
  39. }
  40. v[0][i] = 1;
  41. }
  42. for(int i = 1;i < n;i++)
  43. {
  44. for(int j = 1;j < m;j++)
  45. {
  46. if(v[i][j] == -1)
  47. v[i][j] = 0;
  48. else
  49. v[i][j] = ((v[i - 1][j - 1]%M + v[i - 1][j]%M)%M + v[i][j - 1]%M)%M;
  50. }
  51. }
  52. cout << v[n - 1][m - 1] << "\n";
  53. }
  54.  
  55. return 0;
  56. }
Success #stdin #stdout 0.01s 5516KB
stdin
5
5 2 1
2 0
7 3 1
1 0
6 3 1
5 2
2 9 1
0 1
5 6 2
0 1
1 0
stdout
4
24
0
2
129