Pagini recente » Cod sursa (job #878296) | Cod sursa (job #3240604) | Cod sursa (job #1709312) | Cod sursa (job #3283111) | Cod sursa (job #1709787)
#include <cstdio>
#include <vector>
#define MOD 2000003
using namespace std;
int N, M, C;
struct ciuperca
{
int l,c;
};
vector<ciuperca> v;
int a[2][1000001];
bool isTree(int i, int j)
{
vector<ciuperca>::iterator it;
for(it=v.begin(); it!=v.end(); it++)
{
if(it->l == i && it->c == j) return 0;
}
return 1;
}
int main()
{
FILE *fin, *fout;
int i, j, k;
ciuperca e;
fin = fopen("padure2.in", "r");
fout = fopen("padure2.out", "w");
fscanf(fin, "%d %d %d", &N, &M, &C);
for(i=1; i<=C; i++)
{
fscanf(fin, "%d %d", &e.l, &e.c);
v.push_back(e);
}
a[0][M] = a[1][M] = 1;
for(i=M-1; i>0; i--) a[N%2][i] = 1;
for(i=N-1; i>0; i--)
{
k = (i+1)%2;
for(j=M-1; j>0; j--)
{
if(isTree(i, j))
a[i%2][j] = ( a[k][j] + a[i%2][j+1] ) % MOD;
else
a[i%2][j] = 0;
}
}
fprintf(fout, "%d\n", a[1][1]);
fclose(fin);
fclose(fout);
v.clear();
return 0;
}