Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int GetIns(int**a,int x, int y, int n, int m,int k){
- //cout << x << " " << y << endl;
- int all = 0;
- int** b = new int* [k*2 - 1];
- for (int i = 0; i < k*2 - 1; ++i)
- b[i] = new int[5];
- int counter = 1;
- for(int i = 0; i < k*2 - 1; i++){
- if(i < k){
- b[i][0] = x - (k - 1) + i;
- b[i][1] = y - i;
- }
- else{
- b[i][0] = x + counter;
- b[i][1] = y - (k - 1) + counter;
- counter ++;
- }
- //cout << b[i][0] << " " << b[i][1] << endl;
- }
- counter = 0;
- for(int i = 0; i < k*2 -1;i++){
- if(b[i][1] >= 1 && b[i][0] >= 0 && b[i][0] < m){
- if(b[i][1] + counter < n){
- b[i][3] = b[i][1] + counter;
- b[i][1] -= 1;
- b[i][2] = b[i][0];
- b[i][4] = 1;
- }
- else{
- b[i][3] = n - 1;
- b[i][1] -= 1;
- b[i][2] = b[i][0];
- b[i][4] = 2;
- }
- }
- else if(b[i][1] < 1 && b[i][0] >= 0 && b[i][0] < m){
- if(b[i][1] + counter < n){
- b[i][3] = b[i][1] + counter;
- b[i][1] = 0;
- b[i][2] = b[i][0];
- }
- else{
- b[i][3] = n - 1;
- b[i][1] = 0;
- b[i][2] = b[i][0];
- }
- if(b[i][1]==b[i][3]){
- b[i][4] = 3;
- }
- else{
- b[i][4] = 4;
- }
- }
- if(i < k - 1){
- counter += 2;
- }
- else{
- counter -= 2;
- }
- if(b[i][4]==1){
- all += a[b[i][2]] [b[i][3]] - a[b[i][0]] [b[i][1]];
- }
- else if(b[i][4]==2){
- if(b[i][1]>=b[i][3]){
- all += a[b[i][2]] [b[i][3]];
- }
- else{
- all += a[b[i][2]] [b[i][3]] - a[b[i][0]] [b[i][1]];
- }
- }
- else if(b[i][4]==3||b[i][4]==4){
- all += a[b[i][2]] [b[i][3]];
- }
- //cout << b[i][0] << " " << b[i][1] << " " << b[i][2] << " " << b[i][3] << " " << b[i][4] << " " << all << endl;
- //cout << counter << endl;
- }
- return all;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement