1. 程式人生 > >CCF 201412-2 Z字形掃描

CCF 201412-2 Z字形掃描

#include <iostream>
#include <vector>
using namespace std;
int main()
{
	int n;
	cin >> n;
	//建立 2*n-1 個動態陣列,每個陣列存放一個對角線上的元素 
	vector<int> a[2*n-1];
	int b;
	for(int i=0; i<n; i++){
		for(int j=0; j<n; j++){
			cin >> b;
			a[i+j].push_back(b);		//放入第 i+j 個數組中 
		}
	}
	for(int i=0; i<2*n-1; i++){
		if(i&1){		//i為奇數,正序輸出 
			for(int j=0; j<a[i].size(); j++){
				cout << a[i][j] << " ";
			}
		}
		else{		//i為偶數,逆序輸出 
			for(int j=a[i].size()-1; j>=0; j--){
				cout << a[i][j] << " ";
			}
		}
	}
	cout << endl;
	return 0;
}