Advertisement
believe_me

Untitled

Nov 7th, 2021
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.43 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. int findnull(int** matrix, int n, int condition) {
  5.     for (int i = 0; i < n; i++) {
  6.         switch (condition) {
  7.         case 1:
  8.             if (matrix[0][i] == 0)
  9.                 return i;
  10.             break;
  11.         case 2:
  12.             if (matrix[1][i] == 0)
  13.                 return i;
  14.             break;
  15.         }
  16.     }
  17. }
  18.  
  19. int findmax(int a, int b) {
  20.     if (a > b)
  21.         return a;
  22.     else
  23.         return b;
  24. }
  25.  
  26. int findnumberofcolumns(int** matrix, int n) {
  27.     for (int i = 0; i < n; i++)
  28.         if (matrix[0][i] == 0)
  29.             return i;
  30. }
  31.  
  32. void findrow(int* start, int* sort, int n, int *index, int* length) {
  33.     int i = *index;
  34.     int k = 0;
  35.     int* sort = new int[n];
  36.     do {
  37.         sort[k] = start[i];
  38.         i++;
  39.         k++;
  40.     } while (start[i] < start[i + 1]);
  41.     *length = i - *index;
  42.     *index += *length;
  43. }
  44.  
  45. void fillsort1(int* f1, int n, int length, int index, int* sort, int** matrix) {
  46.     for (int i = index; i < index + length; i++)
  47.         f1[i] = sort[i - index];
  48.     int posnum = findnull(matrix, n, 1);
  49.     matrix[0][posnum] = length;
  50. }
  51.  
  52. void fillsort2(int* f2, int n, int length, int index, int* sort, int** matrix) {
  53.     for (int i = index; i < index + length; i++)
  54.         f2[i] = sort[i - index];
  55.     int posnum = findnull(matrix, n, 2);
  56.     matrix[1][posnum] = length;
  57. }
  58.  
  59. void fillingfs(int n, int* start, int* f1, int* f2, int** matrix) {
  60.     nullmatrix(matrix, n);
  61.     int index = 0;
  62.     int length = 0;
  63.     int condition = 0;
  64.     int* sort;
  65.     for (int i = 0; i < n; i += length) {
  66.         findrow(start, sort, n, &index, &length);
  67.         if (condition % 2 == 0)
  68.             fillsort1(f1, n, length, index, sort, matrix);
  69.         else
  70.             fillsort2(f2, n, length, index, sort, matrix);
  71.     }
  72. }
  73.  
  74. int calculatek(int** matrix , int i, int condition) {
  75.     int sum = 0;
  76.     for (int counter = 0; counter < i; counter++)
  77.     {
  78.         switch (condition) {
  79.         case 1:
  80.             sum += matrix[0][counter];
  81.             break;
  82.         case 2:
  83.             sum += matrix[1][counter];
  84.             break;
  85.         }
  86.     }
  87.     return sum;
  88. }
  89.  
  90. int* sortedf(int* f1, int* f2, int** matrix, int n) {
  91.     int k1 = 0;
  92.     int k2 = 0;
  93.     int* f = new int[n];
  94.     int counter = findnumberofcolumns(matrix, n);
  95.     for (int i = 0; i < counter; i++) {
  96.         int size1 = matrix[0][i];
  97.         int size2 = matrix[1][i];
  98.         findmax(size1, size2);
  99.         if (i == 0) {
  100.             for (int j = 0; j < size1 + size2; j++) {
  101.  
  102.  
  103.             }
  104.         }
  105.         else{
  106.             k1 = calculatek(matrix, i, 1);
  107.             k2 = calculatek(matrix, i, 2);
  108.             for (int j = 0; j < size1 + size2; j++) {
  109.                 if (
  110.                     f[k1+k2]
  111.             }
  112.         }
  113.     }
  114.  
  115. }
  116.  
  117. void nullmatrix(int** matrix, int n) {
  118.     int counter = n / 2 + 1;
  119.     for (int i = 0; i < counter; i++) {
  120.         matrix[0][i] = 0;
  121.         matrix[1][i] = 0;
  122.     }
  123. }
  124.  
  125. int main() {
  126.     setlocale(LC_ALL, "Russian");
  127.     int n;
  128.     std::cin >> n;
  129.     int* result = new int[n];
  130.     int* start = new int[n];
  131.     for (int i = 0; i < n; i++)
  132.         std::cin >> start[i];
  133.     int* f1 = new int[n];
  134.     int* f2 = new int[n];
  135.     int* sort = new int[n];
  136.     int length;
  137.  
  138.  
  139.     return 0;
  140. }
  141.  
  142. /*  int** matrix = new int* [2];
  143.     for (int i = 0; i < 2; i++)
  144.         matrix[i] = new int[n / 2 + 1];
  145.         */
  146.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement