JOI2007予選 問題6@C++(-21)
工事中のフラグを掛け算ではなくビット演算で管理してるのとかは気分。
#include <climits> #include <cstdio> #include <algorithm> #include <vector> using namespace std; int main(int argc,char* argv[]) { int a,b; scanf("%d %d\n",&a,&b); vector<vector<int> > mask_map(a+1,vector<int>(b+1,INT_MAX)); vector<vector<int> > dest_map(a+1,vector<int>(b+1,0)); int n; scanf("%d\n",&n); for(int i=0;i<n;i++) { int x,y; scanf("%d %d\n",&x,&y); mask_map[x][y]=0; } dest_map[1][0]=1; for(int x=1;x<a+1;x++) { for(int y=1;y<b+1;y++) { dest_map[x][y]=(dest_map[x][y-1]+dest_map[x-1][y])&mask_map[x][y]; } } printf("%d\n",dest_map[a][b]); return 0; }