Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. int main(){
  7. int N, M;
  8. int k;
  9.  
  10. /*struct bigInt
  11. {
  12. long long int array[];
  13. } array1;*/
  14.  
  15. cin >> N>> M>>k;
  16. long long int matrix[N][M];
  17. //створюємо масив з координатами які треба занулити
  18. long long int array[2*k];
  19. if(k > 0){
  20. for(int i = 0; i < 2*k; i++){
  21. cin >> array[i];
  22. }
  23. }
  24. //надомо значення всім елементам -1 в матриці
  25. for (int i = 0; i <N; i++){
  26. for(int j = 0; j < M; j++){
  27. matrix[i][j]=-1;
  28. }
  29. }
  30. //зчитуємо координати сноубордистів і відповідні елементи записуємо як 0
  31. for(int f = 0; f < 2*k; f+=2 ){
  32. matrix[array[f]-1][array[f+1]-1] = 0;
  33. }
  34. //перевіряємо перший стовпчик , якщо і-тий елемент в стовпчику рівний 0 ,
  35. //то і всі інші елементи під ним в цьому стовпчику рівні 0
  36. for (int i = 0; i < M; i++){
  37. if(matrix[0][i]!=0){
  38. matrix[0][i] = 1;
  39. }
  40. else{
  41. matrix[0][i+1] = 0;
  42. }
  43. }
  44. //аналогічно для 1 рядка
  45. for (int i = 0; i < N; i++){
  46. if(matrix[i][0]!=0){
  47. matrix[i][0] = 1;
  48. }
  49. else{
  50. matrix[i+1][0] = 0;
  51. }
  52. }
  53. //за принципом трикутника Паскаля знаходимо значення кожного елемента матриці
  54. for (int i = 1; i <N; i++){
  55. for(int j = 1; j < M; j++){
  56. if(matrix[i][j]!=0){
  57. matrix[i][j] = matrix[i-1][j]+matrix[i][j-1]+matrix[i-1][j-1];
  58. }
  59. }
  60. }
  61.  
  62. /*for (int i = 0; i <N; i++){
  63. for(int j = 0; j < M; j++){
  64. cout << matrix[i][j]<<" ";
  65. }
  66. cout << endl;
  67. }*/
  68.  
  69.  
  70. cout << matrix[N-1][M-1]<< endl;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement