Guest User

Untitled

a guest
Apr 22nd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.85 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. class Program {
  5.  
  6.     static void printMatrix (int[,] matrix, int rows, int columns) {
  7.         for (int i = 0; i < rows; i++) {
  8.             for (int j = 0; j < columns; j++)
  9.                 Console.Write (matrix[i, j] + " ");
  10.             Console.WriteLine ();
  11.         }
  12.     }
  13.  
  14.     static bool checkNeightbour (int rows, int columns, int x, int y) {
  15.         bool inRow    = x >= 0 && x < rows;
  16.         bool inColumn = y >= 0 && y < columns;
  17.         return inRow && inColumn;
  18.     }
  19.  
  20.     static List<int> neightbours (int[,] matrix, int rows, int columns, int x, int y) {
  21.         List<int> lst = new List<int> ();
  22.         for (int i = x - 1; i <= x + 1; i++)
  23.             for (int j = y - 1; j <= y + 1; j++)
  24.                 if ((i != x || j != y) && checkNeightbour (rows, columns, i, j))
  25.                     lst.Add (matrix[i, j]);
  26.         return lst;
  27.     }
  28.  
  29.     static bool localMinimum (int[,] matrix, int rows, int columns, int x, int y) {
  30.         int element = matrix[x,y];
  31.         List<int> neightboursList = neightbours (matrix, rows, columns, x, y);
  32.         for (int i = 0; i < neightboursList.Count; i++)
  33.             if (neightboursList[i] <= element)
  34.                 return false;
  35.         return true;
  36.     }
  37.  
  38.     static int countLocalMinimums (int[,] matrix, int rows, int columns) {
  39.         int count = 0;
  40.         for (int i = 0; i < rows; i++)
  41.             for (int j = 0; j < columns; j++)
  42.                 if (localMinimum (matrix, rows, columns, i, j))
  43.                     count++;
  44.         return count;
  45.     }
  46.  
  47.     static void Main (string[] args) {
  48.         int rows    = Convert.ToInt32 (Console.ReadLine ());
  49.         int columns = Convert.ToInt32 (Console.ReadLine ());
  50.         int[,] matrix = new int[rows, columns];
  51.         Random rand = new Random ();
  52.         for (int i = 0; i < rows; i++)
  53.             for (int j = 0; j < columns; j++)
  54.                 matrix[i,j] = rand.Next (0, 10);
  55.         printMatrix (matrix, rows, columns);
  56.         Console.WriteLine (countLocalMinimums (matrix, rows, columns));
  57.         //neightbours (matrix, rows, columns, 0, 0);
  58.         Console.ReadLine ();
  59.     }
  60. }
Add Comment
Please, Sign In to add comment