CCF 201412-2
主要是设置了一个flag来判断其输出方向,OK简单,初学者可以琢磨一下逻辑(实在不会,可以私信)
#include<stdio.h>
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
using namespace std;
int m[600][600];
int main(){
int n;
cin >> n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin >> m[i][j];
}
}
bool flag= true;
for(int i=0;i<2*n-1;i++){
flag^=1;
for(int j=0,k=i-j;k>=0;k--,j++){
if(k>=n || j>=n || k<0 || j<0) continue;
if(flag) cout << m[j][k];
else cout << m[k][j];
if(i!=2*n-2 || k!=n-1) cout << ' ';
}
}
return 0;
}