【AOJ 2619】Thread Tree
問題
Thread Tree | Aizu Online Judge
方針
- 木を作って順に辿って出力する.
- 英語つらいなって思ったけどそんなに難しくなかった.(これは方針ではない)
コード
#include<bits/stdc++.h> #define rep(i, n) REP(i, 0, n) #define REP(i, a, n) for(int i = a ; i < (int)n ; i++) #define pb push_back using namespace std; struct TREE { int _d; string _name; vector<TREE*> _v; TREE(string name, int d){ _name = name; _d = d; } void add(TREE* t){ _v.pb(t); } void print(){ rep(i,_d) cout << "."; cout << _name << endl; rep(i, _v.size()){ _v[i]->print(); } } }; signed main(){ int n; int k1, k; string m1, m; TREE* v[1001]; TREE *t, *root; cin >> n; cin >> k1; cin >> m1; root = t = new TREE(m1, k1); v[1] = t; REP(i, 2, n+1){ cin >> k >> m; t = new TREE(m, v[k]->_d+1); v[k]->add(t); v[i] = t; } root->print(); }
木を作るのに苦労するなど. まだまだですね.