Advertisement
Josif_tepe

Untitled

Mar 26th, 2021
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.63 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <gsl/gsl_matrix.h>
  4. int main() {
  5.     int n, m;
  6.     scanf("%d%d", &n, &m);
  7.     gsl_matrix* mat = gsl_matrix_alloc(n, m);
  8.     for(int i = 0; i < n; i++) {
  9.         for(int j = 0; j < m; j++) {
  10.             int pom;
  11.             scanf("%d", &pom);
  12.             gsl_matrix_set(mat, i, j, pom);
  13.         }
  14.     }
  15.     gsl_matrix* nova_matrica = gsl_matrix_alloc((n + 2) / 2, (m + 2) / 2);
  16.     int ni = 0;
  17.     int nj = 0;
  18.     for(int i = 0; i < n; i += 2) {
  19.         nj = 0;
  20.         for(int j = 0; j < m; j += 2) {
  21.             int maks_sosed = gsl_matrix_get(mat, i, j);
  22.             if(j + 1 < m) { // deka postoi sosedot koj e na desno od momentalnata kelija
  23.                 if(maks_sosed < gsl_matrix_get(mat, i, j + 1)) {
  24.                     maks_sosed = gsl_matrix_get(mat, i, j + 1);
  25.                 }
  26.             }
  27.             if(i + 1 < n) {
  28.                 if(maks_sosed < gsl_matrix_get(mat, i + 1, j)) {
  29.                     maks_sosed = gsl_matrix_get(mat, i + 1, j);
  30.                 }
  31.             }
  32.             if(i + 1 < n && j + 1 < m) {
  33.                 if(maks_sosed < gsl_matrix_get(mat, i + 1, j + 1)) {
  34.                     maks_sosed = gsl_matrix_get(mat, i + 1, j + 1);
  35.                 }
  36.             }
  37.             gsl_matrix_set(nova_matrica, ni, nj, maks_sosed);
  38.             nj++;
  39.         }
  40.         ni++;
  41.     }
  42.     for(int i = 0; i < ni; i++) {
  43.         for(int j = 0; j < nj; j++) {
  44.             printf("%lf ", gsl_matrix_get(nova_matrica, i, j));
  45.         }
  46.         printf("\n");
  47.     }
  48. }
  49. /*
  50.  5 5
  51.  1 7 5 0 4
  52.  2 3 18 -3 5
  53.  14 0 7 5 2
  54.  3 3 4 5 6
  55.  7 0 0 1 2
  56.  
  57.  *.*/
  58.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement