39
1
using System;
2
using System.Linq;
3
4
if (!int.TryParse(Console.ReadLine(), out var cs) || cs is < 1 or > 100000)
5
{
6
Console.WriteLine("Invalid input");
7
return;
8
}
9
10
while (cs > 0)
11
cs = Process(0, -1, cs);
12
13
static int Process(int deep, int v, int cs)
14
{
15
while (cs > 0)
16
{
17
(var cmd, var num) = (Console.ReadLine() ?? "").Split().Chunk(2)
18
.Select(x => (x[0], (x.Length > 1 ? (int?)int.Parse(x[1]) : null)))
19
.FirstOrDefault();
20
cs--;
21
22
if (cmd is "1" && num.HasValue)
23
cs = Process(deep + 1, num.Value, cs);
24
else if (cmd is "2")
25
{
26
Console.WriteLine(v);
27
return cs;
28
}
29
else if (cmd is "3")
30
Console.WriteLine(deep);
31
else if (cmd is "4")
32
Console.WriteLine(deep > 0 ? 0 : 1);
33
else if (cmd is "5")
34
Console.WriteLine(v);
35
}
36
37
return cs;
38
}
39
Cached Result
CoOrds 1: x = 10, y = 20