1546: 回形取数

来源:互联网 发布:数据分析挖掘主观题 编辑:程序博客网 时间:2024/05/22 04:42

1546: 回形取数


题目描述

输入

输出

样例输入

3 31 2 34 5 67 8 9

样例输出

1 4 7 8 9 6 3 2 5


c++代码:

#include<iostream>  

#include<cstring>        
using namespace std;        
    int main(){  
       int m,n;  
       cin>>m>>n;  
       int a[m][n];  
       int i,j;  
       for(i=0;i<m;i++)  
        for(j=0;j<n;j++)
            cin>>a[i][j];   
       int sum=m*n-1;  
       i=0;j=0;  
       cout<<a[0][0];
       a[0][0]=-1;
       while(sum)
       {  
        while(a[++i][j]!=-1 && i<m)
        {  
            cout<<" "<<a[i][j];  
            a[i][j]=-1;  
            sum--;  
        }  
        i--;  
         
        while(a[i][++j]!=-1 && j<n)
        {  
            cout<<" "<<a[i][j];  
            a[i][j]=-1;  
            sum--;  
        }  
        j--;  
        while(a[--i][j]!=-1 && i>=0)
        {  
            cout<<" "<<a[i][j];  
            a[i][j]=-1;  
            sum--;  
        }  
        i++;  
        while(a[i][--j]!=-1 && j>=0)
        {  
            cout<<" "<<a[i][j];  
            a[i][j]=-1;  
            sum--;  
        }  
        j++;  
       }  
       cout<<endl;
        return 0;  
    }