#include <bits/stdc++.h>
using namespace std;
struct TreeNode{
int data;
TreeNode* left;
TreeNode* right;
TreeNode(int val):left(nullptr),right(nullptr),data(val){};
};
vector<vector<int>>level(TreeNode* root){
vector<vector<int>>ans;
queue<TreeNode*>q;
if(root == nullptr){
return ans;
}
q.push(root);
while(!q.empty()){
int size = q.size();
vector<int>lvl;
for(int i = 0;i< size;i++){
auto u=q.front();q.pop();
lvl.push_back(u->data);
if(u->left){
q.push(u->left);
}
if(u->right){
q.push(u->right);
}
}
ans.push_back(lvl);
}
return ans;
}
TreeNode* buildTree(){
int x;cin>>x;
if(x==-1)return nullptr;
TreeNode* root = new TreeNode(x);
queue<TreeNode*>q;
q.push(root);
while(!q.empty()){
auto u = q.front();
q.pop();
if(cin>>x && x!= -1){
u->left = new TreeNode(x);
q.push(u->left);
}
if(cin>>x && x!= -1){
u->right = new TreeNode(x);
q.push(u->right);
}
}
return root;
}
int main() {
TreeNode* root = buildTree();
vector<vector<int>>ans = level(root);
// Clean range-based iteration
for (const auto& lvl : ans) {
for (int val : lvl) {
cout << val << " ";
}
cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBUcmVlTm9kZXsKaW50IGRhdGE7ClRyZWVOb2RlKiBsZWZ0OwpUcmVlTm9kZSogcmlnaHQ7ClRyZWVOb2RlKGludCB2YWwpOmxlZnQobnVsbHB0cikscmlnaHQobnVsbHB0ciksZGF0YSh2YWwpe307Cn07Cgp2ZWN0b3I8dmVjdG9yPGludD4+bGV2ZWwoVHJlZU5vZGUqIHJvb3QpewoJdmVjdG9yPHZlY3RvcjxpbnQ+PmFuczsKCXF1ZXVlPFRyZWVOb2RlKj5xOwoJaWYocm9vdCA9PSBudWxscHRyKXsKCQlyZXR1cm4gYW5zOwoJfQoJCglxLnB1c2gocm9vdCk7CgkKCXdoaWxlKCFxLmVtcHR5KCkpewoJCWludCBzaXplID0gcS5zaXplKCk7CgkJdmVjdG9yPGludD5sdmw7CgkJZm9yKGludCBpID0gMDtpPCBzaXplO2krKyl7CgkJCWF1dG8gdT1xLmZyb250KCk7cS5wb3AoKTsKCQkJbHZsLnB1c2hfYmFjayh1LT5kYXRhKTsKCQkJaWYodS0+bGVmdCl7CgkJCQlxLnB1c2godS0+bGVmdCk7CgkJCX0KCQkJCgkJCWlmKHUtPnJpZ2h0KXsKCQkJCXEucHVzaCh1LT5yaWdodCk7CgkJCX0KCQl9CgkJYW5zLnB1c2hfYmFjayhsdmwpOwoJfQoJcmV0dXJuIGFuczsKfQpUcmVlTm9kZSogYnVpbGRUcmVlKCl7CglpbnQgeDtjaW4+Png7CglpZih4PT0tMSlyZXR1cm4gbnVsbHB0cjsKCVRyZWVOb2RlKiByb290ID0gbmV3IFRyZWVOb2RlKHgpOwoJcXVldWU8VHJlZU5vZGUqPnE7CglxLnB1c2gocm9vdCk7CgkKCXdoaWxlKCFxLmVtcHR5KCkpewoJCWF1dG8gdSA9IHEuZnJvbnQoKTsKCQlxLnBvcCgpOwoJCQoJCWlmKGNpbj4+eCAmJiB4IT0gLTEpewoJCQl1LT5sZWZ0ID0gbmV3IFRyZWVOb2RlKHgpOwoJCQlxLnB1c2godS0+bGVmdCk7CgkJfQoJCQoJCQlpZihjaW4+PnggJiYgeCE9IC0xKXsKCQkJdS0+cmlnaHQgPSBuZXcgVHJlZU5vZGUoeCk7CgkJCXEucHVzaCh1LT5yaWdodCk7CgkJfQoJfQoJcmV0dXJuIHJvb3Q7Cn0KaW50IG1haW4oKSB7CiAgICBUcmVlTm9kZSogcm9vdCA9IGJ1aWxkVHJlZSgpOwogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PmFucyA9IGxldmVsKHJvb3QpOwogICAvLyBDbGVhbiByYW5nZS1iYXNlZCBpdGVyYXRpb24KICAgIGZvciAoY29uc3QgYXV0byYgbHZsIDogYW5zKSB7CiAgICAgICAgZm9yIChpbnQgdmFsIDogbHZsKSB7CiAgICAgICAgICAgIGNvdXQgPDwgdmFsIDw8ICIgIjsKICAgICAgICB9CiAgICAgICAgY291dCA8PCAiXG4iOwogICAgfQoJcmV0dXJuIDA7Cn0=