Advertisement
myname0

sort_79_II_7

Apr 2nd, 2015
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <iomanip>
  4. using namespace std;
  5.  
  6. int **create (int &n, ifstream &inp)
  7. {
  8.     inp >> n;
  9.     int **a = new int *[n];
  10.     for(int i = 0; i < n; i++)
  11.         {
  12.             a[i] = new int [n];
  13.             for(int j = 0; j < n; j++)
  14.                 inp >> a[i][j];
  15.     }
  16.     return a;
  17. }
  18. void **print (int n, int **mus, ofstream &out)
  19. {
  20.     for(int i = 0; i < n; i++, out << endl)
  21.         for(int j = 0; j < n; j++)
  22.             out << mus[i][j] << " ";
  23.     return 0;
  24. }
  25.  
  26. void sort(int*mus, int n)
  27. {
  28.   int t;
  29.   int i, j;
  30.   for( i = 1; i < n; ++i) {
  31.     t = mus[i];
  32.     for(j = i-1; (j >= 0) && (t > mus[j]); j--)
  33.       mus[j+1] = mus[j];
  34.     mus[j+1] = t;
  35.   }
  36. }
  37.  
  38.  
  39. int main()
  40. {
  41.     int **mus;
  42.     int n;
  43.     int k = 0;
  44.     ifstream inp ("input.txt");
  45.     mus = create(n, inp);
  46.     int* b = new int [n];
  47.     for( int j = 1; j < n-1; j++)
  48.         {
  49.             k = 0;
  50.             for (int i = 0; i < n-j; i++)
  51.             {
  52.                 b[i] = mus[i][j+i];
  53.                 k++;
  54.             }
  55.             sort(b, k);
  56.             for (int i = 0; i < k; i++)
  57.                 mus[i][j+i] = b[i];
  58.         }
  59.     delete b;
  60.     int* c = new int [n];
  61.     for(int j = 1; j < n-1; j++)
  62.     {
  63.         k=0;
  64.         for(int i = 0; i < n-j ; i++)
  65.         {
  66.             c[i] = mus[i+j][i];
  67.             k++;
  68.         }
  69.         sort(c,k);
  70.         for(int i = 0; i < k; i++)
  71.             mus[i+j][i] = c[i];
  72.     }
  73.     delete c;
  74.     ofstream out ("output.txt");
  75.     print(n, mus, out);
  76.     return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement