前提・実現したいこと
アイズオンラインジャッジで,
C++ で 根付き木 の問題を解いていたのですが, RuntimeErrorがでて正解しません.
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_7_A&lang=jp
コード自体はあっているような気がするんですが何がおかしいのかわかる方教えていただけると嬉しいです.
発生している問題・エラーメッセージ
Runtime Error
%は1/8です.
該当のソースコード
//下の/はコンパイルした時はつけてません
/#include <iostream>
/#include <stdio.h>
/#include <vector>
/#include <algorithm>
using namespace std;
typedef struct Node{
int node;
int parent;
int depth;
vector<int> v;
}Node;
int check_exist_node(int fnode, vector<Node> tmp_v){
Node tmp_node;
tmp_node.node = -1;
for(int i=0; tmp_v.size(); i++){
if(tmp_v[i].node == fnode)return i;
}
return tmp_node.node;
}
bool node_cmp(const Node &a, const Node &b){
return a.node<b.node;
}
int main(int argc, const char * argv[]) {
// insert code here...
///////// //write// ///////// int n; cin >> n; vector<Node> node_v; for(int itr = 0; itr<n; itr++){ int cin_node; cin >> cin_node; Node tmp_node; bool check_tmp_node_pushback = true; if(check_exist_node(cin_node, node_v) == -1){ tmp_node.node = cin_node; tmp_node.parent = -1; tmp_node.depth = 0; }else{ tmp_node = node_v[check_exist_node(cin_node, node_v)]; check_tmp_node_pushback = false; } int node_root; cin >> node_root; for(int i=0; i<node_root; i++){ Node tmp_node2; int tmp_root_val = 0; cin >> tmp_root_val; tmp_node2.node = tmp_root_val; tmp_node2.parent = tmp_node.node; tmp_node2.depth = tmp_node.depth+1; node_v.push_back(tmp_node2); tmp_node.v.push_back(tmp_root_val); } if(check_tmp_node_pushback) node_v.push_back(tmp_node); else node_v[check_exist_node(cin_node, node_v)] = tmp_node; } sort(node_v.begin(), node_v.end(), node_cmp); for(int i=0; i<n; i++){ cout << "node" << " "; cout << node_v[i].node; cout << ": parent = "; cout << node_v[i].parent; cout << ", depth = "; cout << node_v[i].depth; cout << ", "; if(node_v[i].depth == 0){ cout << "root"; }else if(node_v[i].v.empty()){ cout << "leaf"; }else{ cout << "internal node"; } cout << ", ["; if(!node_v[i].v.empty()) for(int j=0; j<node_v[i].v.size(); j++){ cout << node_v[i].v[j]; if(j!=node_v[i].v.size()-1) cout << ", "; } cout << "]"; cout << endl; } return 0;
}
試したこと
XcodeとwebのC++コンパイラを使って実行しました.
その際は成功したのですが...
補足情報(FW/ツールのバージョンなど)
特になし
回答1件
あなたの回答
tips
プレビュー