Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.75 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3.  
  4. using namespace std;
  5.  
  6. int mas[500][500] = {0};
  7. int c = 0, q = 1;
  8. int n;
  9.  
  10. void solve1(int i, int j)
  11. {
  12.     int l = -1, cl = 0, u = 1, cnt = 0, kk = -1, oo = -2;
  13.     bool f = 1;
  14.     while (cnt < n * n)
  15.     {
  16.         cout << mas[i][j]  << ' ';
  17.         l++;
  18.         cnt++;
  19.         if (cl == l)
  20.         {
  21.             i += kk;
  22.             j += oo;
  23.             kk--;
  24.             u += 2;
  25.             cl += u;
  26.             cout << endl;
  27.         }
  28.         else
  29.         {
  30.             if (f)
  31.             {
  32.                 i++;
  33.                 j++;
  34.                 f = !f;
  35.             }
  36.             else
  37.             {
  38.                 j--;
  39.                 f = !f;
  40.             }
  41.         }
  42.     }
  43. }
  44.  
  45. int line[200000] = {0};
  46.  
  47. void solve2(int i, int j)
  48. {
  49.     int l = -1, cl = 0, u = 1, cnt = 0, kk = -1, oo = -2;
  50.     bool f = 1;
  51.     while (cnt < n * n)
  52.     {
  53.         line[cnt] = mas[i][j];
  54.         l++;
  55.         cnt++;
  56.         if (cl == l)
  57.         {
  58.             i += kk;
  59.             j += oo;
  60.             kk--;
  61.             u += 2;
  62.             cl += u;
  63.             //cout << endl;
  64.         }
  65.         else
  66.         {
  67.             if (f)
  68.             {
  69.                 i++;
  70.                 j++;
  71.                 f = !f;
  72.             }
  73.             else
  74.             {
  75.                 j--;
  76.                 f = !f;
  77.             }
  78.         }
  79.     }
  80. }
  81.  
  82. void solve3()
  83. {
  84.     int c = 0, q = 1, i = 0, j = 0;
  85.     for (int k = 0; k < n * n; k++)
  86.     {
  87.         mas[j][c++] = line[k];
  88.         if (c == q)
  89.         {
  90.             q += 2;
  91.             c = 0;
  92.             j++;
  93.         }
  94.     }
  95.     int l = -1, cl = 0, u = 1, cnt = 0, kk = -1, oo = -2;
  96.     bool f = 1;
  97.     i = j - 1;
  98.     j = q - 3;
  99.     while (cnt < n * n)
  100.     {
  101.         cout << mas[i][j]  << ' ';
  102.         l++;
  103.         cnt++;
  104.         if (cl == l)
  105.         {
  106.             i += kk;
  107.             j += oo;
  108.             kk--;
  109.             u += 2;
  110.             cl += u;
  111.             cout << endl;
  112.         }
  113.         else
  114.         {
  115.             if (f)
  116.             {
  117.                 i++;
  118.                 j++;
  119.                 f = !f;
  120.             }
  121.             else
  122.             {
  123.                 j--;
  124.                 f = !f;
  125.             }
  126.         }
  127.     }
  128. }
  129.  
  130. int main()
  131. {
  132.     freopen("triangle.in", "r", stdin);
  133.     freopen("triangle.out", "w", stdout);
  134.     cin >> n;
  135.     int j = 0;
  136.     for (int k = 0; k < n * n; k++)
  137.     {
  138.         cin >> mas[j][c++];
  139.         if (c == q)
  140.         {
  141.             q += 2;
  142.             c = 0;
  143.             j++;
  144.         }
  145.     }
  146.     string s;
  147.     cin >> s;
  148.     if (s == "counterclockwise")
  149.     {
  150.         solve1(j - 1, q - 3);
  151.     }
  152.     else
  153.     {
  154.         solve2(j - 1, q - 3);
  155.         solve3();
  156.     }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement