fork download
  1. #include<bits/stdc++.h>
  2. #define MOD 1000000007
  3. using namespace std;
  4. int main(){
  5. int n,m,p;
  6. int dp[1001][1001];
  7. cin>>n>>m>>p;
  8. memset(dp,-1,sizeof(dp));
  9. while(p--){
  10. int x,y;
  11. cin>>x>>y;
  12. dp[x-1][y-1]=0;
  13. }
  14. int f=0;
  15. for(int i=0; i<m; i++){
  16. if(dp[0][i]==-1 && f==0) dp[0][i]=1;
  17. else if(dp[0][i]==0) f=1;
  18. else if(dp[0][i]==-1 && f==1) dp[0][i]=0;
  19. }f=0;
  20. for(int i=0; i<n; i++){
  21. if(dp[i][0]==-1 && f==0) dp[i][0]=1;
  22. else if(dp[i][0]==0) f=1;
  23. else if(dp[i][0]==-1 && f==1) dp[i][0]=0;
  24. }
  25.  
  26. for(int i=1; i<n; i++){
  27. for(int j=1; j<m; j++){
  28. if(dp[i][j]==0) continue;
  29. else{
  30. dp[i][j]=((dp[i-1][j]%MOD)+(dp[i][j-1]%MOD))%MOD;
  31. }
  32. }
  33. }
  34. cout<<dp[n-1][m-1];
  35.  
  36. }
Success #stdin #stdout 0s 6932KB
stdin
4 3 2
3 3
3 1
stdout
2