Pagini recente » Cod sursa (job #520926) | Cod sursa (job #207459) | Monitorul de evaluare | Cod sursa (job #1747201) | Cod sursa (job #1709842)
#include <cstdio>
using namespace std;
//ifstream f ("padure2.in");
//ofstream g ("padure2.out");
int n, m, i, j, x, y, a[2608][2608], c;
long long nr;
short dx[]={1, 0}, dy[]={0, 1};
void fill (int i, int j)
{
a[i][j]=2;
if (i==n && j==m) (nr++)%2000003;
else{
for (int k=0; k<2; k++){
if (a[i+dx[k]][j+dy[k]]==0) fill(i+dx[k], j+dy[k]);
}
}
a[i][j]=0;
}
int main ()
{
freopen("Padure2.in", "r", stdin);
freopen("padure2.out", "w", stdout);
scanf("%d%d%d", &n, &m, &c);
// f >> n >> m >> c;
for (i=1; i<=c; i++){
scanf("%d%d", &x, &y);
// f >> x >> y;
a[x][y]=1;
}
for (i=0; i<=n+1; i++)
a[i][0]=a[i][m+1]=1;
for (j=0; j<=m+1; j++)
a[0][j]=a[n+1][j]=1;
fill(1, 1);
printf("%lld", nr);
// g << nr << '\n';
return 0;
}