Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main(){
- int N, M;
- int k;
- /*struct bigInt
- {
- long long int array[];
- } array1;*/
- cin >> N>> M>>k;
- long long int matrix[N][M];
- //створюємо масив з координатами які треба занулити
- long long int array[2*k];
- if(k > 0){
- for(int i = 0; i < 2*k; i++){
- cin >> array[i];
- }
- }
- //надомо значення всім елементам -1 в матриці
- for (int i = 0; i <N; i++){
- for(int j = 0; j < M; j++){
- matrix[i][j]=-1;
- }
- }
- //зчитуємо координати сноубордистів і відповідні елементи записуємо як 0
- for(int f = 0; f < 2*k; f+=2 ){
- matrix[array[f]-1][array[f+1]-1] = 0;
- }
- //перевіряємо перший стовпчик , якщо і-тий елемент в стовпчику рівний 0 ,
- //то і всі інші елементи під ним в цьому стовпчику рівні 0
- for (int i = 0; i < M; i++){
- if(matrix[0][i]!=0){
- matrix[0][i] = 1;
- }
- else{
- matrix[0][i+1] = 0;
- }
- }
- //аналогічно для 1 рядка
- for (int i = 0; i < N; i++){
- if(matrix[i][0]!=0){
- matrix[i][0] = 1;
- }
- else{
- matrix[i+1][0] = 0;
- }
- }
- //за принципом трикутника Паскаля знаходимо значення кожного елемента матриці
- for (int i = 1; i <N; i++){
- for(int j = 1; j < M; j++){
- if(matrix[i][j]!=0){
- matrix[i][j] = matrix[i-1][j]+matrix[i][j-1]+matrix[i-1][j-1];
- }
- }
- }
- /*for (int i = 0; i <N; i++){
- for(int j = 0; j < M; j++){
- cout << matrix[i][j]<<" ";
- }
- cout << endl;
- }*/
- cout << matrix[N-1][M-1]<< endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement