fork(1) download
  1. #include<stdio.h>
  2. #define MOD 1000000007
  3. int main()
  4. {
  5. long long m,n,p,a,b;
  6.  
  7. scanf("%lld%lld%lld",&m,&n,&p);
  8. long long arr[m][n];
  9. for(long long i=0;i<m;i++)
  10. for(long long j=0;j<n;j++)
  11. arr[i][j]=0;
  12. while(p--)
  13. {
  14. scanf("%lld%lld",&a,&b);
  15. arr[a-1][b-1]=-1;
  16. }
  17. if(arr[0][0]==-1)
  18. printf("0\n");
  19. else if(m==1 && n==1)
  20. printf("0\n");
  21. else if(arr[m-1][n-1]==-1)
  22. printf("0\n");
  23. else
  24. {
  25. arr[0][0]=1;
  26. for(long long i=1;i<n;i++)
  27. {
  28. if(arr[0][i]==0)
  29. arr[0][i]=arr[0][i-1];
  30. }
  31. for(long long i=1;i<m;i++)
  32. if(arr[i][0]==0)
  33. arr[i][0]=arr[i-1][0];
  34. for(long long i=1;i<m;i++)
  35. for(long long j=1;j<n;j++)
  36. {
  37. if(arr[i-1][j]!=-1 && arr[i][j]!=-1)
  38. {
  39. arr[i][j]+=arr[i-1][j];
  40. arr[i][j]%=MOD;
  41. }
  42. if(arr[i][j-1]!=-1 && arr[i][j]!=-1)
  43. {
  44. arr[i][j]+=arr[i][j-1];
  45. arr[i][j]%=MOD;
  46. }
  47. }
  48. printf("%lld\n",arr[m-1][n-1]);
  49. }
  50.  
  51.  
  52. /*for(long long i=0;i<m;i++)
  53. {
  54. printf("\n");
  55. for(long long j=0;j<n;j++)
  56. printf("%lld\t",arr[i][j]);
  57. }*/
  58.  
  59.  
  60. return 0;
  61. }
Success #stdin #stdout 0s 2016KB
stdin
10 10 1
10 10
stdout
0