Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Program
- {
- #region Utils
- static bool PressAnyKey() { if (Console.ReadKey().Key == ConsoleKey.N) return false; return false; }
- static void Pass(int n) { for (int i = 0; i < n; ++i) Console.WriteLine(); }
- static void Swap(ref int a, ref int b) { int buffer = a; a = b; b = buffer; }
- unsafe static void Swap(int* a, int* b) { int buffer = *a; *a = *b; *b = buffer; }
- unsafe static void InsertSort(int*[] a, int size)
- {
- for (int i = 0; i < size; ++i)
- {
- var vjuh = i - 1;
- var buffer = *a[i];
- while (vjuh >= 0 && buffer < *a[vjuh])
- {
- *a[vjuh + 1] = *a[vjuh];
- --vjuh;
- }
- *a[vjuh + 1] = buffer;
- }
- }
- unsafe static void SelectSort(int*[] a, int size)
- {
- for (int i = 0; i < size; ++i)
- {
- int *Min = a[i];
- for (int j = i; j < size; ++j)
- {
- if (*Min > *a[j])
- Min = a[j];
- }
- Swap(Min, a[i]);
- }
- }
- #endregion
- static bool Check(int[] a, int[] b)
- {
- var size = a.Count() == b.Count() ? a.Count() : 0;
- if (size == 0)
- return false;
- for (int i = 0; i < size; ++i)
- {
- if (a[i] != b[i])
- return false;
- }
- return true;
- }
- static void No2()
- {
- #region Init
- var arr = new int[7, 4];
- var rand = new Random();
- for (int j = 0; j < 3; ++j)
- {
- for (int i = 0; i < 7; ++i)
- {
- arr[i, j] = rand.Next(81);
- Console.Write($"{arr[i, j]} ");
- }
- Console.WriteLine();
- }
- Pass(2);
- #endregion
- for (int i = 0; i < 7; ++i)
- {
- int mod3 = 0;
- for (int j = 0; j < 3; ++j)
- {
- if (arr[i, j] % 3 == 0)
- {
- ++mod3;
- }
- }
- arr[i, 3] = mod3;
- }
- for (int i = 0; i < 7; ++i)
- {
- for (int j = 0; j < 6 - i; ++j)
- {
- if (arr[j, 3] > arr[j + 1, 3])
- {
- for (int k = 0; k < 4; ++k)
- {
- Swap(ref arr[j, k], ref arr[j + 1, k]);
- }
- }
- }
- }
- #region Write Result
- for (int j = 0; j < 4; ++j)
- {
- for (int i = 0; i < 7; ++i)
- {
- Console.Write($"{arr[i, j]}\t");
- }
- Console.WriteLine();
- }
- #endregion
- }
- unsafe static void No1()
- {
- #region Init
- var m = int.Parse(Console.ReadLine());
- var n = int.Parse(Console.ReadLine());
- var rand = new Random();
- var arr = new int[m, n];
- var firstLine = new int[m];
- for (int i = 0; i < m; ++i)
- {
- for (int j = 0; j < n; ++j)
- {
- arr[i, j] = rand.Next(31);
- }
- }
- #endregion
- for (int i = 0; i < n; ++i)
- {
- var pArr = new int*[m];
- for (int j = 0; j < m; ++j)
- {
- fixed (int* pBuff = &arr[j, i]) { pArr[j] = pBuff; };
- }
- SelectSort(pArr, m);
- }
- for (int i = 0; i < m; ++i)
- {
- firstLine[i] = arr[i, 0];
- }
- int EqualsLine = 0;
- for (int i = 1; i < n; ++i)
- {
- var checkLine = new int[m];
- for (int j = 0; j < m; ++j)
- {
- checkLine[j] = arr[j, i];
- }
- if (Check(firstLine, checkLine))
- ++EqualsLine;
- }
- #region Write Result
- for (int i = 0; i < n; ++i)
- {
- for (int j = 0; j < m; ++j)
- {
- Console.Write($"{arr[j, i]} ");
- }
- Console.WriteLine();
- }
- Console.WriteLine($"EqualsLine = {EqualsLine}");
- #endregion
- }
- unsafe static void Main(string[] args)
- {
- No1();
- PressAnyKey();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement