Cerinţa
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
Explicație
#include <bits/stdc++.h> using namespace std; ifstream cin("cladire.in"); ofstream cout("cladire.out"); int a[1001][1001]; int main() { int n , m; cin >> n >> m; for(int i = 1 ; i <= n ; ++i) a[i][1]=1; for(int i = 1 ; i <= m ; ++i) a[1][i]=1; for(int i = 2 ; i <= n ; ++i) for(int j = 2 ; j <= m ; ++j) a[i][j]=(a[i][j-1]+a[i-1][j])%9901; cout << a[n][m]; }