提交时间:2025-05-17 17:52:34

运行 ID: 10665

#include <bits/stdc++.h> using namespace std; #define N 500 int a[N][N]; int b[N][N] = {0}; int n,m; int main() { cin>>n>>m; for(int i = 0;i < n;i++) { for(int j = 0;j < m;j++) { cin>>a[i][j]; } } int temp = 0; int hang = 0,lie = 0; while(temp <= n * m) { while(hang < n && b[hang][lie] == 0) { if(temp >= n * m) { return 0; } cout<<a[hang][lie]<<" "; b[hang][lie] = 1; hang++; temp++; } hang--; lie++; while(lie < m && b[hang][lie] == 0) { if(temp >= n * m) { return 0; } cout<<a[hang][lie]<<" "; b[hang][lie] = 1; lie++; temp++; } lie--; hang--; while(hang >= 0 && b[hang][lie] == 0) { if(temp >= n * m) { return 0; } cout<<a[hang][lie]<<" "; b[hang][lie] = 1; hang--; temp++; } hang++; lie--; while(lie >= 0 && b[hang][lie] == 0) { if(temp >= n * m) { return 0; } cout<<a[hang][lie]<<" "; b[hang][lie] = 1; lie--; temp++; } hang++; lie++; } return 0; }