Cod sursa(job #1709846)

Utilizator alexandra_paticaAndreea Alexandra Patica alexandra_patica Data 28 mai 2016 14:09:48
Problema Padure2 Scor 0
Compilator cpp Status done
Runda ONIS 2016 - Runda - 2 - ACM ICPC Romanian Programming Contest Marime 0.87 kb
#include <cstdio>
using namespace std;
//ifstream f ("padure2.in");
//ofstream g ("padure2.out");
int n, m, i, j, x, y, a[2508][2508], 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;
}