fork(1) download
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. #define MOD 1000000007
  5. #define MAX_N 1200
  6.  
  7. int dp[MAX_N][MAX_N],p[MAX_N][MAX_N],h,w,k,x,y;
  8.  
  9. int main(){
  10. cin>>h>>w>>k;
  11. for(int i=0;i<k;i++){
  12. cin>>x>>y;
  13. for(int j=x+2;j<=w;j++){
  14. for(int k=1;k<=y-1;k++){
  15. p[k][j]=1;
  16. }
  17. }
  18. for(int j=y+2;j<=h;j++){
  19. for(int k=1;k<=x-1;k++){
  20. p[j][k]=1;
  21. }
  22. }
  23. }
  24. dp[1][1]=1;
  25. for(int i=1;i<=h;i++){
  26. for(int j=1;j<=w;j++){
  27. if(p[i][j]==0 && i+j>=3){
  28. dp[i][j]=(dp[i-1][j]+dp[i][j-1])%MOD;
  29. }
  30. }
  31. }
  32. cout<<dp[h][w]<<endl;
  33. return 0;
  34. }
Success #stdin #stdout 0s 14712KB
stdin
4 4 1
2 2
stdout
18