返回列表 發帖
  1. #include<bits/stdc++.h>
  2. using namespace std;

  3. int up,lef;
  4. int o=1,n=1;
  5. int t=0,tcount=1;
  6. vector<int> v;

  7. int main()
  8. {
  9.     int a,c;
  10.     cin>>a>>c;
  11.     if(a%2==0)
  12.     {
  13.         cout<<"error";
  14.         return 0;
  15.     }
  16.     int b[a][a];
  17.     for(int i=0;i<a;i++)
  18.         for(int j=0;j<a;j++)
  19.             cin>>b[i][j];

  20.     int a1=a/2,a2=a/2;
  21.     int a1y=a/2,a2y=a/2;
  22.     if(c==0)
  23.     {
  24.         lef=-1;
  25.         up=-1;
  26.     }
  27.     else if(c==1)
  28.     {
  29.         lef=1;
  30.         up=-1;
  31.     }
  32.     else if(c==2)
  33.     {
  34.         lef=1;
  35.         up=1;
  36.     }
  37.     else if(c==3)
  38.     {
  39.         lef=-1;
  40.         up=1;
  41.     }
  42.     v.push_back(b[a1][a2]);
  43.     while(o!=0)
  44.     {
  45.         if(c%2==0)//移動
  46.         {
  47.             for(int i=0;i<tcount;i++)
  48.             {
  49.                 a2+=lef;
  50.                 if(a2<0)
  51.                     {
  52.                         a2=0;
  53.                         v.push_back(b[a1][a2]);
  54.                         o=0;
  55.                         break;
  56.                     }
  57.                     else if(a2>=a)
  58.                     {
  59.                         a2=a-1;
  60.                         v.push_back(b[a1][a2]);
  61.                         o=0;
  62.                         break;
  63.                     }
  64.                     else
  65.                     {
  66.                         v.push_back(b[a1][a2]);
  67.                     }
  68.             }
  69.         }
  70.         else
  71.         {
  72.             for(int i=0;i<tcount;i++)
  73.             {
  74.                 a1+=up;
  75.                 if(a1<0)
  76.                     {
  77.                         a1=0;
  78.                         v.push_back(b[a1][a2]);
  79.                         o=0;
  80.                         break;
  81.                     }
  82.                     else if(a1>=a)
  83.                     {
  84.                         a1=a-1;
  85.                         v.push_back(b[a1][a2]);
  86.                         o=0;
  87.                         break;
  88.                     }
  89.                     else
  90.                     {
  91.                         v.push_back(b[a1][a2]);
  92.                     }
  93.             }
  94.         }
  95. ///////////////////////////////////////////////////////////////判斷
  96.         if(o==0)
  97.         {
  98.             break;
  99.         }
  100. //////////////////////////////////////////////////////////移動
  101.         if(c%2==0)//移動
  102.         {
  103.             for(int i=0;i<tcount;i++)
  104.             {
  105.                 a1+=up;
  106.                 if(a1<0)
  107.                     {
  108.                         a1=0;
  109.                         v.push_back(b[a1][a2]);
  110.                         o=0;
  111.                         break;
  112.                     }
  113.                     else if(a1>=a)
  114.                     {
  115.                         a1=a-1;
  116.                         v.push_back(b[a1][a2]);
  117.                         o=0;
  118.                         break;
  119.                     }
  120.                     else
  121.                     {
  122.                         v.push_back(b[a1][a2]);
  123.                     }
  124.             }
  125.         }
  126.         else
  127.         {
  128.             for(int i=0;i<tcount;i++)
  129.             {
  130.                 a2+=lef;
  131.                 if(a2<0)
  132.                     {
  133.                         a2=0;
  134.                         v.push_back(b[a1][a2]);
  135.                         o=0;
  136.                         break;
  137.                     }
  138.                     else if(a2>=a)
  139.                     {
  140.                         a2=a-1;
  141.                         v.push_back(b[a1][a2]);
  142.                         o=0;
  143.                         break;
  144.                     }
  145.                     else
  146.                     {
  147.                         v.push_back(b[a1][a2]);
  148.                     }
  149.             }
  150.         }
  151. //////////////////////////////////////////////////////////判斷
  152. //        if(a1<0)
  153. //        {
  154. //            a1=0;
  155. //            v.push_back(b[a1][a2]);
  156. //            o=0;
  157. //            continue;
  158. //        }
  159. //        else if(a1>=a)
  160. //        {
  161. //            a1=a-1;
  162. //            v.push_back(b[a1][a2]);
  163. //            o=0;
  164. //            continue;
  165. //        }
  166. //        else if(a2<0)
  167. //        {
  168. //            a2=0;
  169. //            v.push_back(b[a1][a2]);
  170. //            o=0;
  171. //            continue;
  172. //        }
  173. //        else if(a2>=a)
  174. //        {
  175. //            a2=a-1;
  176. //            v.push_back(b[a1][a2]);
  177. //            o=0;
  178. //            continue;
  179. //        }
  180. //        v.push_back(b[a1][a2]);
  181. ///////////////////////////////////////////////////////////////改變
  182.         tcount++;
  183.         lef*=-1;
  184.         up*=-1;
  185.     }
  186.     for(int i=0;i<v.size()-1;i++)
  187.     {
  188.         cout<<v[i];
  189.     }
  190.     cout<<endl;
  191.     return 0;
  192. }
複製代碼

TOP

返回列表