Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. int GetIns(int**a,int x, int y, int n, int m,int k){
  2. //cout << x << " " << y << endl;
  3. int all = 0;
  4. int** b = new int* [k*2 - 1];
  5. for (int i = 0; i < k*2 - 1; ++i)
  6. b[i] = new int[5];
  7. int counter = 1;
  8. for(int i = 0; i < k*2 - 1; i++){
  9. if(i < k){
  10. b[i][0] = x - (k - 1) + i;
  11. b[i][1] = y - i;
  12. }
  13. else{
  14. b[i][0] = x + counter;
  15. b[i][1] = y - (k - 1) + counter;
  16. counter ++;
  17. }
  18. //cout << b[i][0] << " " << b[i][1] << endl;
  19. }
  20.  
  21.  
  22. counter = 0;
  23. for(int i = 0; i < k*2 -1;i++){
  24. if(b[i][1] >= 1 && b[i][0] >= 0 && b[i][0] < m){
  25. if(b[i][1] + counter < n){
  26. b[i][3] = b[i][1] + counter;
  27. b[i][1] -= 1;
  28. b[i][2] = b[i][0];
  29. b[i][4] = 1;
  30. }
  31. else{
  32. b[i][3] = n - 1;
  33. b[i][1] -= 1;
  34. b[i][2] = b[i][0];
  35. b[i][4] = 2;
  36. }
  37. }
  38. else if(b[i][1] < 1 && b[i][0] >= 0 && b[i][0] < m){
  39. if(b[i][1] + counter < n){
  40. b[i][3] = b[i][1] + counter;
  41. b[i][1] = 0;
  42. b[i][2] = b[i][0];
  43. }
  44. else{
  45. b[i][3] = n - 1;
  46. b[i][1] = 0;
  47. b[i][2] = b[i][0];
  48. }
  49. if(b[i][1]==b[i][3]){
  50. b[i][4] = 3;
  51. }
  52. else{
  53. b[i][4] = 4;
  54. }
  55. }
  56. if(i < k - 1){
  57. counter += 2;
  58. }
  59. else{
  60. counter -= 2;
  61. }
  62. if(b[i][4]==1){
  63. all += a[b[i][2]] [b[i][3]] - a[b[i][0]] [b[i][1]];
  64. }
  65. else if(b[i][4]==2){
  66. if(b[i][1]>=b[i][3]){
  67. all += a[b[i][2]] [b[i][3]];
  68. }
  69. else{
  70. all += a[b[i][2]] [b[i][3]] - a[b[i][0]] [b[i][1]];
  71. }
  72. }
  73. else if(b[i][4]==3||b[i][4]==4){
  74. all += a[b[i][2]] [b[i][3]];
  75. }
  76.  
  77. //cout << b[i][0] << " " << b[i][1] << " " << b[i][2] << " " << b[i][3] << " " << b[i][4] << " " << all << endl;
  78. //cout << counter << endl;
  79. }
  80. return all;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement