fork(2) download
  1. #include<iostream>
  2. using namespace std;
  3. #define MOD 1000000007
  4. int main()
  5. {
  6. int a,b,m,n,p,grid[1002][1002];
  7. cin>>m>>n>>p;
  8. for(int i=1;i<=m;i++)
  9. for(int j=1;j<=n;j++)
  10. grid[i][j]=0;
  11. while(p--)
  12. {
  13. cin>>a>>b;
  14. grid[a][b]=-1;
  15. }
  16. if(grid[1][1]!=-1)
  17. {
  18. grid[1][1]=1;
  19. for(int i=1;i<=m;i++)
  20. {
  21. for(int j=1;j<=n;j++)
  22. {
  23. if(grid[i][j]==-1||(i==1&&j==1))
  24. continue;
  25. if(j==1)
  26. {if(grid[i-1][j]==1)
  27. grid[i][j]=grid[i-1][j];
  28. }
  29. else if(i==1)
  30. {if(grid[i][j-1]==1)
  31. grid[i][j]=grid[i][j-1];
  32. }
  33. else {
  34. if(grid[i-1][j]!=-1)
  35. grid[i][j]=(grid[i][j]+grid[i-1][j])%MOD;
  36. if(grid[i][j-1]!=-1)
  37. grid[i][j]=(grid[i][j]+grid[i][j-1])%MOD;
  38. grid[i][j]%=MOD;
  39. }
  40. }
  41. }
  42. /*for(int i=1;i<=m;i++)
  43.  {for(int j=1;j<=n;j++)
  44.   cout<<grid[i][j]<<" ";
  45.   cout<<endl;
  46.  }
  47. */
  48. cout<<grid[m][n]<<endl;
  49. }
  50. else cout<<0<<endl;
  51. return 0;
  52. }
  53.  
Success #stdin #stdout 0s 6936KB
stdin
4 3 2
3 3
3 1
stdout
2