AOJ 0515 - School Road

左端と上端の計算を間違えてた.
太郎くんの周りが工事中とか考えてた.(0通り)

#include<iostream>

int main(){
	int dp[20][20], map[20][20];
	int w, h;
	while(std::cin >> w >> h, w){
		for(int i=0;i<16;i++){
			for(int j=0;j<16;j++){
				dp[i][j] = 0;
				map[i][j] = 0;
			}
		}

		int n;
		std::cin >> n;
		for(int i=0;i<n;i++){
			int a, b;
			std::cin >> a >> b;
			map[b-1][a-1] = 1;
		}

		if(map[0][0] != 1){
			dp[0][0] = 1;
		}
		for(int i=1;i<w;i++){
			if(map[0][i] != 1){//通れる
				dp[0][i] = dp[0][i-1];
			}
		}
		for(int i=1;i<h;i++){
			if(map[i][0] != 1){
				dp[i][0] = dp[i-1][0];
			}
		}

		for(int y=1;y<h;y++){
			for(int x=1;x<w;x++){
				if(map[y][x] != 1){
					dp[y][x] = dp[y-1][x] + dp[y][x-1];
				}
			}
		}
	
		std::cout << dp[h-1][w-1] << std::endl;
	}
}