编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#21141 #1018. 1-01E. JM的俄罗斯套娃 Accepted 100 20 ms 392 K C++ 17 / 2.1 K 自动化82-郭筠陶 2020-01-17 15:31:32
显示原始代码
#include <bits/stdc++.h>
using namespace std;
class node {
public:
    node *father;
    bool isNum;
    int num;
    vector<node *> v;
    inline ~node() {
        for (auto it : v) {
            if (!it->isNum)
                it->~node();
        }
    }
    node(int num_, node *father_) {
        if (num_ != 0)
            isNum = true;
        else
            isNum = false;
        num = num_;
        v = vector<node *>();
        father = father_;
    }
    node(int num_) {
        if (num_ != 0)
            isNum = true;
        else
            isNum = false;
        num = num_;
        v = vector<node *>();
        father = nullptr;
    }
    void output() {
        cout << '{';
        for (int i = 0; i < this->v.size(); i++) {
            auto it = this->v.at(i);
            if (it->isNum)
                cout << it->num;
            else
                cout << "[]";
            if (i != this->v.size() - 1)
                cout << " ";
        }
        cout << "}\n";
    }
};

int main() {
    ios::sync_with_stdio(false);
    /*ifstream fin;
    fin.open("input");*/
    int n;
    cin >> n;
    node *root = new node(0);
    node *curNode = root;
    for (int i = 0; i < n; i++) {
        int tmp;
        cin >> tmp;
        // cout<<i<<"\t"<<tmp<<endl;
        if (tmp == 1) {
            int index, num;
            cin >> index >> num;
            // cout<<p<<"\t"<<v<<"\n";
            node *newNode = new node(num, curNode);
            curNode->v.insert(curNode->v.begin() + index, newNode);
            // for(auto it:curNode->v)    cout<<it->num<<" ";
            // cout<<endl;
            // curNode->output();
        } else if (tmp == 2) {
            int p;
            cin >> p;
            // cout<<(*(curNode->v.begin()+p-1))->num<<endl;
            curNode->v.erase(curNode->v.begin() + p - 1);
            // curNode->output();
        } else if (tmp == 3) {
            // if(curNode==root)   cout<<"==root\n";
            // curNode->output();
            int p;
            cin >> p;
            if (p == 0) {
                if (curNode != root)
                    curNode = curNode->father;
            } else if (0 > p - 1 || p - 1 >= curNode->v.size())
                continue;
            else if (curNode->v.at(p - 1)->isNum)
                continue;
            else if (!curNode->v.at(p - 1)->isNum)
                curNode = curNode->v.at(p - 1);
        } else if (tmp == 4) {
            curNode->output();
        }
    }
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:2 ms
内存:308 KiB

输入文件(1.in

12
1 0 1
1 0 2
1 1 0
4
2 3
4
3 2
4
1 0 6
4
3 0
4

答案文件(1.out

{2 [] 1}
{2 []}
{}
{6}
{2 []}

用户输出

{2 [] 1}
{2 []}
{}
{6}
{2 []}

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:2 ms
内存:304 KiB

输入文件(2.in

10
1 0 1
1 0 2
1 1 3
1 1 4
1 3 5
1 5 6
4
2 2
2 4
4

答案文件(2.out

{2 4 3 5 1 6}
{2 3 5 6}

用户输出

{2 4 3 5 1 6}
{2 3 5 6}

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:2 ms
内存:284 KiB

输入文件(3.in

28
1 0 12
1 1 4
1 1 7
1 2 0
1 0 0
2 2
4
3 1
1 0 89
1 1 0
1 0 0
1 3 0
4
3 0
4
3 3
4
<50 bytes omitted>

答案文件(3.out

{[] 7 [] 4}
{[] 89 [] []}
{[] 7 [] 4}
{}
{1}
{}
{[] 7 [] 4}
{[] [] 4}

用户输出

{[] 7 [] 4}
{[] 89 [] []}
{[] 7 [] 4}
{}
{1}
{}
{[] 7 [] 4}
{[] [] 4}

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:2 ms
内存:284 KiB

输入文件(4.in

20
1 0 0
1 1 1
1 0 0
1 3 2
4
3 1
1 0 17
1 1 12
1 2 19
2 1
1 0 23
1 3 0
4
3 0
3 1
3 0
<16 bytes omitted>

答案文件(4.out

{[] [] 1 2}
{23 12 19 []}
{[] 1 2}
{}

用户输出

{[] [] 1 2}
{23 12 19 []}
{[] 1 2}
{}

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:2 ms
内存:252 KiB

输入文件(5.in

45
1 0 11
1 1 0
2 1
1 0 32
4
3 2
1 0 0
1 1 0
1 2 40
1 3 0
4
3 3
4
3 2
1 0 0
3 1
1 0
<129 bytes omitted>

答案文件(5.out

{32 []}
{[] [] 40 []}
{[] [] 40 []}
{12}
{[]}
{12}
{[] [] 40 []}
{32 []}
{32 []}
{[] [] 40 
<26 bytes omitted>

用户输出

{32 []}
{[] [] 40 []}
{[] [] 40 []}
{12}
{[]}
{12}
{[] [] 40 []}
{32 []}
{32 []}
{[] [] 40 []}
{[] 40 []}
{32 []}

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:2 ms
内存:356 KiB

输入文件(6.in

50
1 0 12
1 0 8
1 0 19
1 3 6
4
1 4 34
1 5 7
1 5 8
4
1 7 91
1 1 1
1 7 2
1 0 12
4
1 0 8
<251 bytes omitted>

答案文件(6.out

{19 8 12 6}
{19 8 12 6 34 8 7}
{12 19 1 8 12 6 34 8 2 7 91}
{19 8 12 6 34 7 19 1 8 12 6 34 8 2 7 
<259 bytes omitted>

用户输出

{19 8 12 6}
{19 8 12 6 34 8 7}
{12 19 1 8 12 6 34 8 2 7 91}
{19 8 12 6 34 7 19 1 8 12 6 34 8 2 7 91}
{19 8 12 6 34 8 7 19 1 8 12
<224 bytes omitted>

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:2 ms
内存:284 KiB

输入文件(7.in

50
1 0 0
1 0 8
2 2
1 1 6
4
1 2 34
1 3 0
1 3 8
4
1 4 0
2 1
1 4 2
1 0 12
4
1 0 8
1 0 1
<234 bytes omitted>

答案文件(7.out

{8 6}
{8 6 34 8 []}
{12 6 34 8 [] 2 []}
{19 8 12 6 34 7 6 34 8 [] 2 []}
{12 19 [] 6 74 83 [] 8 1
<186 bytes omitted>

用户输出

{8 6}
{8 6 34 8 []}
{12 6 34 8 [] 2 []}
{19 8 12 6 34 7 6 34 8 [] 2 []}
{12 19 [] 6 74 83 [] 8 12 6 34 8 2 7 6 95 34 8 [] 2 []}

<151 bytes omitted>

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:2 ms
内存:392 KiB

输入文件(8.in

50
1 0 0
1 1 0
1 0 29
1 3 0
1 0 8
1 5 0
1 1 88
1 2 0
2 8
4
3 5
1 0 63
1 0 52
1 2 19
1
<187 bytes omitted>

答案文件(8.out

{8 88 [] 29 [] [] []}
{63 7}
{8 88 [] 29 [] [] []}
{18 71 33}
{18}
{5 15 45}
{9 15 45}
{9 15 
<16 bytes omitted>

用户输出

{8 88 [] 29 [] [] []}
{63 7}
{8 88 [] 29 [] [] []}
{18 71 33}
{18}
{5 15 45}
{9 15 45}
{9 15 45}
{9 15 45}

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:2 ms
内存:264 KiB

输入文件(9.in

12
3 0
1 0 0
3 1
1 0 9
3 1
4
3 0
4
2 1
1 0 0
3 1
4

答案文件(9.out

{9}
{[]}
{}

用户输出

{9}
{[]}
{}

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:2 ms
内存:348 KiB

输入文件(10.in

32
1 0 46
3 1
1 1 0
4
2 1
3 1
4
1 0 0
3 1
4
1 0 0
3 1
1 0 0
3 1
1 0 12
1 0 14
1 2 2
<73 bytes omitted>

答案文件(10.out

{46 []}
{}
{}
{14 24}
{94}
{[]}
{7}

用户输出

{46 []}
{}
{}
{14 24}
{94}
{[]}
{7}

系统信息

Exited with return code 0