#392
Se consideră o clădire de formă dreptunghiulară formată din n*m
camere, dispuse pe n
linii și m
coloane. Intrarea în clădire este în camera de coordonate (1,1)
, iar ieșirea în camera de coordonate (n,m)
. Din orice cameră (i,j)
se poate ajunge numai în camerele (i+1,j)
sau (i,j+1)
. Determinați în câte moduri se poate ajunge din camera (1,1)
în camera (n,m)
.
Deoarece numărul de posibilități poate fi foarte mare, se cere doar restul acestui număr la împărțirea cu 9901
.
Date de intrare
Fişierul de intrare cladire.in
conţine pe prima linie numerele n m
.
Date de ieşire
Fişierul de ieşire cladire.out
va conţine pe prima linie numărul P
, reprezentând în câte moduri se poate ajunge din camera (1,1)
în camera (n,m)
, număr afișat modulo 9901
.
Restricţii şi precizări
1 ≤ n , m ≤ 1000
Exemplu
cladire.in
3 3
cladire.out
6
#include <iostream> #include <fstream> #include <algorithm> #include <cassert> using namespace std; #define NN 1005 ifstream fin("cladire.in"); ofstream fout("cladire.out"); int n, m, a[NN][NN]; int main(){ fin >> n >> m; for(int i=1;i<=n;++i) a[i][1] = 1; for(int j=1;j<=m;++j) a[1][j] = 1; for(int i=2;i<=n;++i) for(int j=2;j<=m;++j) a[i][j] = (a[i-1][j] + a[i][j-1]) % 9901; fout << a[n][m]; return 0; }