fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int row_col_size , K_size , result_row , result_column;
  8. cout<< "Upisi broj redaka i stupaca N? : ";
  9. cin>> row_col_size;
  10.  
  11. cout<< endl << "Upisi velicinu matrice koja se vrti K(1 - 1000)?: ";
  12. cin>> K_size;
  13.  
  14. cout<< endl << "Upisi broj trazenog retka i?";
  15. cin>> result_row;
  16.  
  17. cout<< endl << "Upisi broj trazenog stupca j?";
  18. cin>> result_column;
  19.  
  20.  
  21. int array_size = row_col_size* row_col_size;
  22.  
  23. int ROW_MAX = row_col_size;
  24. int COL_MAX = row_col_size;
  25. int ROW_MIN = 0;
  26. int COL_MIN = 0;
  27. int row = 0;
  28. int column = 0;
  29. int K = 0;
  30.  
  31. int** data;
  32. data = new int*[row_col_size];
  33. for(int i=0 ; i < row_col_size; ++i)
  34. {
  35. data[i] = new int[row_col_size];
  36. }
  37.  
  38. bool isArrayFinished = false;
  39.  
  40. while(!isArrayFinished )
  41. {
  42. static int counter = 0;
  43.  
  44. if(row == ROW_MIN && column < COL_MAX)
  45. {
  46. data[row][column] = K;
  47. column++;
  48. K++;
  49. }
  50.  
  51. else
  52. if(column == COL_MAX && row < ROW_MAX-1)
  53. {
  54. row++;
  55. data[row][column-1] = K;
  56. K++;
  57. }
  58.  
  59. else
  60. if(row == ROW_MAX-1 && column > COL_MIN+1)
  61. {
  62. column--;
  63. data[row][column-1] = K;
  64. K++;
  65. }
  66.  
  67. else
  68. if(column == COL_MIN+1 && row > ROW_MIN+1)
  69. {
  70. data[row-1][column-1] = K;
  71. row--;
  72. K++;
  73. }
  74.  
  75. else
  76. {
  77. ROW_MAX--;
  78. COL_MAX--;
  79. ROW_MIN++;
  80. COL_MIN++;
  81. counter--;
  82. }
  83.  
  84. counter++;
  85.  
  86. if(counter == array_size)
  87. isArrayFinished = true;
  88.  
  89. if(K == K_size)
  90. K = 0;
  91. }
  92.  
  93. //otkomentiraj ako ne zelis ispis /*
  94. /* cout<< endl;
  95.   for(int i=0 ; i < row_col_size; i++)
  96.   {
  97.   for(int j=0 ; j < row_col_size; j++)
  98.   {
  99.   cout<< " " << data[i][j];
  100.   }
  101.  
  102.   cout<< endl;
  103.   } */
  104. // */
  105.  
  106. cout<< endl << "Trazeni broj : " << data[result_row-1][result_column-1];
  107.  
  108.  
  109. for(int i=0 ; i < row_col_size; ++i)
  110. {
  111. delete []data[i];
  112. }
  113. delete []data;
  114.  
  115. return 0;
  116. }
Success #stdin #stdout 1.45s 2816KB
stdin
8100 328 123 396
stdout
Upisi broj redaka i stupaca  N? : 
Upisi velicinu matrice koja se vrti  K(1 - 1000)?: 
Upisi broj trazenog retka  i?
Upisi broj trazenog stupca j?
Trazeni broj : 177