summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreug-vs <eugene@eug-vs.xyz>2023-11-17 23:30:40 +0300
committereug-vs <eugene@eug-vs.xyz>2023-11-17 23:30:40 +0300
commite3af43a3c2403b86dc0c0aceb56c69dab882be95 (patch)
tree4e2b14f1533655c02c202b31064b2437f2e47d8c
parentc3f76aa0ca9badbadfa567f438857d5fbd3511bf (diff)
downloadaoc-2022-e3af43a3c2403b86dc0c0aceb56c69dab882be95.tar.gz
feat(day-7): working prototype
-rw-r--r--day-7/index.ts126
-rw-r--r--day-7/input.txt1046
2 files changed, 1172 insertions, 0 deletions
diff --git a/day-7/index.ts b/day-7/index.ts
new file mode 100644
index 0000000..689e647
--- /dev/null
+++ b/day-7/index.ts
@@ -0,0 +1,126 @@
+import fs from "fs";
+
+const file = fs.readFileSync("./input.txt").toString();
+
+const lines = file.split("\n").filter((x) => x.length);
+
+// File or Directory
+interface Item {
+ type: "dir" | "file";
+ name: string;
+ size: number;
+}
+
+interface CommandWithOutput {
+ command: string;
+ outputs: Item[];
+}
+
+interface CommandWithDir extends CommandWithOutput {
+ directory: string[];
+}
+
+function isCommandString(s: string) {
+ return s.startsWith("$");
+}
+
+function parseLines(lines: string[]): CommandWithOutput[] {
+ return lines.reduce((acc, current, index) => {
+ if (isCommandString(current)) {
+ const nextCommandIndex =
+ lines.slice(index + 1).findIndex(isCommandString) + index + 1;
+
+ const smartIndex =
+ nextCommandIndex === index ? lines.length : nextCommandIndex;
+ const outputs = lines.slice(index + 1, smartIndex).map((line) => {
+ const dirMatch = line.match(/dir (.*)/);
+ const fileMatch = line.match(/(.*) (.*)/);
+
+ if (dirMatch && dirMatch[1])
+ return {
+ type: "dir",
+ size: 0,
+ name: dirMatch[1],
+ } satisfies Item;
+ if (fileMatch)
+ return {
+ type: "file",
+ size: Number(fileMatch[1]),
+ name: fileMatch[2],
+ } satisfies Item;
+ throw new Error("Unhandled");
+ });
+ acc.push({ outputs, command: current });
+ }
+ return acc;
+ }, [] as CommandWithOutput[]);
+}
+
+function computeDirectories(commands: CommandWithOutput[]): CommandWithDir[] {
+ return commands.reduce((acc, current) => {
+ const previousDir = acc[acc.length - 1]?.directory;
+
+ const match = current.command.match(/\$ cd (.*)/);
+ const directory = match
+ ? previousDir
+ ? match[1] !== ".."
+ ? [...previousDir, match[1]]
+ : [...previousDir.slice(0, -1)]
+ : [match[1]]
+ : [...previousDir];
+
+ acc.push({ ...current, directory });
+ return acc;
+ }, [] as CommandWithDir[]);
+}
+
+const parsed = parseLines(lines);
+const withDirs = computeDirectories(parsed);
+const lsOutputs = withDirs.filter((cmd) => cmd.command === "$ ls");
+
+// DIRTY CODE STARTS HERE
+function computeDirSize(
+ cmd: CommandWithDir & { totalSize: number | undefined },
+) {
+ if (cmd.totalSize !== undefined) return;
+ cmd.outputs
+ .filter((f) => f.type === "dir")
+ .forEach((dir) => {
+ const path = [...cmd.directory, dir.name];
+ const dirNode = data.find(
+ (datum) => JSON.stringify(datum.directory) === JSON.stringify(path),
+ );
+
+ if (!dirNode) throw new Error(`Unknown size ${dir.name}`);
+ if (dirNode.totalSize === undefined) {
+ computeDirSize(dirNode);
+ }
+ if (dirNode.totalSize !== undefined) {
+ dir.size = dirNode.totalSize;
+ } else {
+ throw new Error(
+ `${dir.name}, ${JSON.stringify(path)}, ${JSON.stringify(dirNode)}`,
+ );
+ }
+ });
+
+ const totalSize = cmd.outputs.reduce((sum, f) => sum + f.size, 0);
+
+ cmd.totalSize = totalSize;
+ // console.log("Setting size ", totalSize, " to dir", cmd.directory);
+}
+
+const data = lsOutputs.map((o) => ({
+ ...o,
+ totalSize: undefined as undefined | number,
+}));
+
+data.forEach(computeDirSize);
+console.log(data);
+
+const sum = data
+ .filter((d) => d.totalSize)
+ .filter((datum) => (datum?.totalSize || 0) <= 100_000)
+ .reduce((acc, d) => acc + (d?.totalSize || 0), 0);
+
+console.log(sum);
diff --git a/day-7/input.txt b/day-7/input.txt
new file mode 100644
index 0000000..fbfd306
--- /dev/null
+++ b/day-7/input.txt
@@ -0,0 +1,1046 @@
+$ cd /
+$ ls
+dir dscbfp
+283653 fsdfddfv
+dir mjzqq
+241330 rcm.psp
+dir sjbpgc
+dir zfsbvs
+$ cd dscbfp
+$ ls
+dir fgtvzpl
+dir hgfrgbv
+dir hmwqgjnl
+dir jvr
+dir lcvdgm
+dir mmhtpz
+dir wqc
+dir znl
+dir zph
+dir zwlpm
+$ cd fgtvzpl
+$ ls
+dir fvrghzfg
+28513 lbbg.rhq
+$ cd fvrghzfg
+$ ls
+212295 cjb.nwg
+dir ftqs
+$ cd ftqs
+$ ls
+250415 mmhtpz
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd hgfrgbv
+$ ls
+86365 cdrgnzrz.hwf
+175318 wqtmwb
+$ cd ..
+$ cd hmwqgjnl
+$ ls
+dir dscbfp
+dir dwtfrgj
+130223 fnl.whg
+66339 mtcv
+dir rgvvz
+$ cd dscbfp
+$ ls
+146043 wpzr
+$ cd ..
+$ cd dwtfrgj
+$ ls
+dir jwmw
+dir pntqg
+$ cd jwmw
+$ ls
+dir dscbfp
+243410 lbbg.phv
+dir mmhtpz
+$ cd dscbfp
+$ ls
+dir mmhtpz
+$ cd mmhtpz
+$ ls
+dir mdrddz
+$ cd mdrddz
+$ ls
+167704 fgjsq.bpb
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd mmhtpz
+$ ls
+233626 dtcmsq.pdl
+163642 jczs.rgg
+111667 msfmjd.vlr
+23137 ndhvh.jbq
+$ cd ..
+$ cd ..
+$ cd pntqg
+$ ls
+68578 lnjvpcgq.zqs
+62492 rcm.psp
+$ cd ..
+$ cd ..
+$ cd rgvvz
+$ ls
+dir hmwqgjnl
+dir jrjgnch
+110656 lnjvpcgq.zqs
+206537 mmhtpz.wgd
+198736 msfmjd.vlr
+110172 rrl.wqz
+dir wrb
+$ cd hmwqgjnl
+$ ls
+141962 bsgljmww.whq
+dir hsmr
+123313 msfmjd.vlr
+223573 rcm.psp
+$ cd hsmr
+$ ls
+229737 fzptbrzb.lqv
+$ cd ..
+$ cd ..
+$ cd jrjgnch
+$ ls
+4426 lbbg.fzh
+dir zbnp
+$ cd zbnp
+$ ls
+65658 cjqbfv.fjf
+270282 pwv.bcz
+$ cd ..
+$ cd ..
+$ cd wrb
+$ ls
+dir fgwnpp
+249291 lbbg
+dir mbd
+dir rdnf
+dir rgvvz
+dir rnrr
+dir vzjh
+$ cd fgwnpp
+$ ls
+dir gdfrtgl
+230060 lbbg.qfm
+275250 rbd.fqj
+dir zlgpdb
+$ cd gdfrtgl
+$ ls
+dir gvw
+dir rgvvz
+$ cd gvw
+$ ls
+123285 mmhtpz.vbl
+167405 qhfqz
+$ cd ..
+$ cd rgvvz
+$ ls
+254625 rcm.psp
+$ cd ..
+$ cd ..
+$ cd zlgpdb
+$ ls
+72966 cjjl.wzp
+217828 ndhvh.jbq
+141199 wbnl.qdc
+$ cd ..
+$ cd ..
+$ cd mbd
+$ ls
+dir hmwqgjnl
+$ cd hmwqgjnl
+$ ls
+13420 mmhtpz.snz
+$ cd ..
+$ cd ..
+$ cd rdnf
+$ ls
+dir frqb
+dir jjjzcjdh
+dir mwpd
+dir nvz
+152893 rcm.psp
+$ cd frqb
+$ ls
+dir dscbfp
+231903 gwlj.lgn
+dir mmhtpz
+298674 nhc.hpl
+193867 rfmv.dzd
+dir sqt
+$ cd dscbfp
+$ ls
+280820 rgvvz.glj
+$ cd ..
+$ cd mmhtpz
+$ ls
+137192 jczs.rgg
+273426 rcm.psp
+$ cd ..
+$ cd sqt
+$ ls
+dir fwvgbgbs
+245416 rgvvz.cgh
+12489 wnjgq
+$ cd fwvgbgbs
+$ ls
+dir mfpd
+170052 msfmjd.vlr
+278273 mwr.stv
+177661 vgwstqlt.zml
+$ cd mfpd
+$ ls
+264130 gmwhsj.jvp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd jjjzcjdh
+$ ls
+dir cnjnnzw
+dir flprjhlm
+266398 fqclzm.mfw
+dir gftmlvmh
+113237 jgnmbml.rnr
+148723 ljfg.vmc
+237722 rrzvq.cqr
+$ cd cnjnnzw
+$ ls
+231497 ldqdwn.bvf
+$ cd ..
+$ cd flprjhlm
+$ ls
+185486 hmwqgjnl.jdn
+$ cd ..
+$ cd gftmlvmh
+$ ls
+dir blpt
+41840 qbr.tjw
+$ cd blpt
+$ ls
+dir sbtg
+$ cd sbtg
+$ ls
+7518 wsh.vrp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd mwpd
+$ ls
+35589 flgh
+$ cd ..
+$ cd nvz
+$ ls
+147018 mpmcpwnl.hqg
+$ cd ..
+$ cd ..
+$ cd rgvvz
+$ ls
+280057 dhwzlmgn
+156280 gmzvl.gtg
+dir hmwqgjnl
+dir pfcjgrgp
+dir prhzdjqv
+132543 qlwqmd.wmj
+223249 rcm.psp
+124899 zvzjh.sbg
+$ cd hmwqgjnl
+$ ls
+99756 mvdpfcvs.wft
+$ cd ..
+$ cd pfcjgrgp
+$ ls
+dir lbbg
+dir nlgf
+130799 wtrdvzhs
+$ cd lbbg
+$ ls
+193125 lnjvpcgq.zqs
+dir vnlmr
+$ cd vnlmr
+$ ls
+39935 lgd.hzz
+$ cd ..
+$ cd ..
+$ cd nlgf
+$ ls
+106563 jfr
+$ cd ..
+$ cd ..
+$ cd prhzdjqv
+$ ls
+dir jhhq
+$ cd jhhq
+$ ls
+135155 mzjdptfm.fln
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd rnrr
+$ ls
+249039 jczs.rgg
+154853 whlwl
+$ cd ..
+$ cd vzjh
+$ ls
+dir hjrs
+$ cd hjrs
+$ ls
+146991 mmhtpz
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd jvr
+$ ls
+13268 gwsldhjc.vbf
+dir hbpwd
+34369 mjtwr.rpv
+dir tfvztnb
+$ cd hbpwd
+$ ls
+253823 bzqc
+dir dscbfp
+237051 ggvvcpg.gmj
+23097 mhl
+211524 ndhvh.jbq
+133936 qzslmmz.fzp
+$ cd dscbfp
+$ ls
+184190 msfmjd.vlr
+238872 ndhvh.jbq
+dir pfsq
+dir pljsm
+dir tlgtcb
+$ cd pfsq
+$ ls
+dir hmwqgjnl
+249351 mmhtpz
+$ cd hmwqgjnl
+$ ls
+301132 rcm.psp
+$ cd ..
+$ cd ..
+$ cd pljsm
+$ ls
+263279 bqh.vhl
+$ cd ..
+$ cd tlgtcb
+$ ls
+50558 bgzrlnzz.rfm
+83169 gtrjzl.hhh
+212764 mgf.zlg
+210599 mmhtpz.dqm
+dir tqsvhc
+$ cd tqsvhc
+$ ls
+264513 lnjvpcgq.zqs
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd tfvztnb
+$ ls
+dir mdz
+$ cd mdz
+$ ls
+209155 dqjh
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd lcvdgm
+$ ls
+135165 lbbg.gsz
+282211 vlbwsps.plg
+$ cd ..
+$ cd mmhtpz
+$ ls
+dir dscbfp
+dir mmhtpz
+70564 msfmjd.vlr
+dir nzdvqb
+59232 rgvvz
+dir ztbht
+$ cd dscbfp
+$ ls
+dir cddzd
+dir dscbfp
+dir hmwqgjnl
+142689 qnnc
+dir whbjm
+$ cd cddzd
+$ ls
+255928 dtnn.hzf
+$ cd ..
+$ cd dscbfp
+$ ls
+dir brvf
+182587 fhmzbc.nlb
+129514 lbbg
+177841 ngw.tlj
+dir qttp
+dir zdmb
+269964 zqn.htj
+$ cd brvf
+$ ls
+24071 tzsvg.pwc
+174118 vtdntn
+$ cd ..
+$ cd qttp
+$ ls
+54613 ccdnjnwz
+131277 zzppc
+$ cd ..
+$ cd zdmb
+$ ls
+117682 bwjhr.gvw
+dir hmwqgjnl
+138816 jczs.rgg
+273129 mmhtpz
+89710 rcm.psp
+dir rgvvz
+$ cd hmwqgjnl
+$ ls
+102907 mmhtpz.dnp
+235885 ndhvh.jbq
+239856 rcm.psp
+$ cd ..
+$ cd rgvvz
+$ ls
+dir fpzzfc
+292842 lbbg
+70603 msfmjd.vlr
+157797 qjs.zlm
+dir zgn
+$ cd fpzzfc
+$ ls
+dir rgvvz
+$ cd rgvvz
+$ ls
+222407 crrwlp.zcd
+$ cd ..
+$ cd ..
+$ cd zgn
+$ ls
+70915 hmwqgjnl.zdg
+276918 lbbg.wlg
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd hmwqgjnl
+$ ls
+207726 cqn.rds
+$ cd ..
+$ cd whbjm
+$ ls
+44954 ndhvh.jbq
+136649 pphznj
+dir ptq
+215264 rmpbqgrl.mqt
+276795 tbtv
+292696 vddnpnp
+dir wnqgpj
+$ cd ptq
+$ ls
+191976 jczs.rgg
+59747 ncbs.mjc
+77874 njqmf
+dir zss
+$ cd zss
+$ ls
+209276 vnv.nvm
+$ cd ..
+$ cd ..
+$ cd wnqgpj
+$ ls
+211738 jczs.rgg
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd mmhtpz
+$ ls
+dir hmwqgjnl
+$ cd hmwqgjnl
+$ ls
+dir jzb
+dir mmhtpz
+$ cd jzb
+$ ls
+138393 drqp.ttd
+250098 jczs.rgg
+dir mfq
+$ cd mfq
+$ ls
+dir nfn
+$ cd nfn
+$ ls
+239922 rcm.psp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd mmhtpz
+$ ls
+158815 jvwqttqn
+72929 jvzfccm
+18353 lwz.clt
+144822 rnvfllt.fwn
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd nzdvqb
+$ ls
+226139 rcm.psp
+$ cd ..
+$ cd ztbht
+$ ls
+279766 jczs.rgg
+222685 msfmjd.vlr
+$ cd ..
+$ cd ..
+$ cd wqc
+$ ls
+dir cndf
+dir hmwqgjnl
+dir lbbg
+$ cd cndf
+$ ls
+dir hmwqgjnl
+284014 qsr.pjg
+$ cd hmwqgjnl
+$ ls
+91921 zrsp.qwd
+$ cd ..
+$ cd ..
+$ cd hmwqgjnl
+$ ls
+dir fccbrtcn
+23864 msfmjd.vlr
+286035 nrbmbpm
+dir pwvgqth
+91650 rgvvz
+dir wllwhm
+$ cd fccbrtcn
+$ ls
+87931 bmjdngzq.zbv
+dir cwr
+dir djngvdp
+266568 lnjvpcgq.zqs
+dir zdwhqb
+$ cd cwr
+$ ls
+dir cmnv
+$ cd cmnv
+$ ls
+dir dscbfp
+dir dwdnwdz
+291794 rcm.psp
+$ cd dscbfp
+$ ls
+dir gtcg
+$ cd gtcg
+$ ls
+73017 pgzcm.qbz
+$ cd ..
+$ cd ..
+$ cd dwdnwdz
+$ ls
+dir hvgwfj
+$ cd hvgwfj
+$ ls
+235064 rnjjh.qnp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd djngvdp
+$ ls
+264940 jczs.rgg
+162343 rgvvz
+$ cd ..
+$ cd zdwhqb
+$ ls
+233875 ggd
+230766 ggqrt.pqn
+$ cd ..
+$ cd ..
+$ cd pwvgqth
+$ ls
+dir nrm
+dir rgvvz
+289164 sgdsg.fbs
+$ cd nrm
+$ ls
+135745 hmwqgjnl.fwb
+$ cd ..
+$ cd rgvvz
+$ ls
+269675 rcm.psp
+$ cd ..
+$ cd ..
+$ cd wllwhm
+$ ls
+14033 rptrszg.lfh
+$ cd ..
+$ cd ..
+$ cd lbbg
+$ ls
+dir fsz
+dir hmwqgjnl
+2856 jpmw.tsp
+156026 ndhvh.jbq
+dir rgmmpm
+dir vzg
+$ cd fsz
+$ ls
+29744 cdsr
+dir frjzv
+dir hmwqgjnl
+75723 hmwqgjnl.jcj
+222555 jczs.rgg
+dir lbbg
+dir pplp
+184370 vzb
+$ cd frjzv
+$ ls
+87553 lnjvpcgq.zqs
+$ cd ..
+$ cd hmwqgjnl
+$ ls
+94991 hsjmzpq
+$ cd ..
+$ cd lbbg
+$ ls
+177441 dscbfp
+9637 lnjvpcgq.zqs
+$ cd ..
+$ cd pplp
+$ ls
+230787 gcjfcbg.sds
+54478 twnslqqv.gtw
+54723 wzwcw.pfj
+$ cd ..
+$ cd ..
+$ cd hmwqgjnl
+$ ls
+dir drpt
+dir dscbfp
+18560 jczs.rgg
+dir tpt
+$ cd drpt
+$ ls
+dir gmcpd
+10052 jczs.rgg
+87927 mmhtpz.jdt
+dir rgvvz
+$ cd gmcpd
+$ ls
+dir rgvvz
+$ cd rgvvz
+$ ls
+dir tjqcj
+$ cd tjqcj
+$ ls
+273175 bgsjwb
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd rgvvz
+$ ls
+104452 fbv
+$ cd ..
+$ cd ..
+$ cd dscbfp
+$ ls
+dir bjn
+dir rvm
+$ cd bjn
+$ ls
+119619 mmhtpz.slf
+$ cd ..
+$ cd rvm
+$ ls
+dir hgl
+$ cd hgl
+$ ls
+9146 jczs.rgg
+294696 rcm.psp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd tpt
+$ ls
+102194 tmlbnm
+$ cd ..
+$ cd ..
+$ cd rgmmpm
+$ ls
+25462 dcp.zfg
+99756 frmlbqp
+71786 msfmjd.vlr
+275455 mvrszdhp.jbr
+$ cd ..
+$ cd vzg
+$ ls
+dir hmwqgjnl
+160612 msfmjd.vlr
+103726 pprnm.rmw
+$ cd hmwqgjnl
+$ ls
+130188 ndhvh.jbq
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd znl
+$ ls
+256149 qcd
+dir rgrhdq
+dir wfhcc
+$ cd rgrhdq
+$ ls
+dir nqpz
+17930 rglm.wrj
+$ cd nqpz
+$ ls
+253269 rcm.psp
+$ cd ..
+$ cd ..
+$ cd wfhcc
+$ ls
+dir dpds
+dir hmwqgjnl
+82595 rcm.psp
+dir rgvvz
+$ cd dpds
+$ ls
+143467 bljj.ddw
+283261 rcm.psp
+$ cd ..
+$ cd hmwqgjnl
+$ ls
+dir fnmqpt
+$ cd fnmqpt
+$ ls
+288739 dscbfp
+$ cd ..
+$ cd ..
+$ cd rgvvz
+$ ls
+41475 srcnvmj.tqb
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd zph
+$ ls
+dir hmwqgjnl
+dir tbwhzrtt
+$ cd hmwqgjnl
+$ ls
+67069 rcm.psp
+219165 rgvvz
+$ cd ..
+$ cd tbwhzrtt
+$ ls
+198892 gwlw.hbb
+94996 mmhtpz
+dir wwwj
+$ cd wwwj
+$ ls
+dir lcttc
+14000 lnjvpcgq.zqs
+$ cd lcttc
+$ ls
+141874 jhlrtbjw.thr
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd zwlpm
+$ ls
+206595 ctvmprqd.nwz
+292861 dscbfp.bpv
+171719 ldmrl.zhz
+23134 lnjvpcgq.zqs
+dir mmhtpz
+283001 msfmjd.vlr
+dir pwrfgjdg
+dir qdztzhl
+$ cd mmhtpz
+$ ls
+90712 lzv.smr
+102181 mcntll.fgt
+260630 nhn.fll
+219684 tlws
+dir tpsvqmgb
+$ cd tpsvqmgb
+$ ls
+dir bpmqlq
+$ cd bpmqlq
+$ ls
+67400 lnjvpcgq.zqs
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd pwrfgjdg
+$ ls
+30612 fflm
+174894 jczs.rgg
+$ cd ..
+$ cd qdztzhl
+$ ls
+dir dscbfp
+dir gcpjnrb
+dir nlffhf
+dir vnrgqg
+dir zrpgb
+$ cd dscbfp
+$ ls
+dir gdjvclf
+dir mbhdvsq
+dir tqb
+dir vlqqslp
+$ cd gdjvclf
+$ ls
+104663 hwwlf.mhv
+$ cd ..
+$ cd mbhdvsq
+$ ls
+98749 gqsjtd.rbv
+200237 lbbg.nwb
+$ cd ..
+$ cd tqb
+$ ls
+101550 cqjmfvd.grg
+dir hmwqgjnl
+$ cd hmwqgjnl
+$ ls
+dir mlmmr
+$ cd mlmmr
+$ ls
+dir rgvvz
+$ cd rgvvz
+$ ls
+188297 gprgzd.rjf
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd vlqqslp
+$ ls
+191754 lbbg
+$ cd ..
+$ cd ..
+$ cd gcpjnrb
+$ ls
+254902 nzzsg.bds
+$ cd ..
+$ cd nlffhf
+$ ls
+295353 hhjqvqnc
+dir mmhb
+58446 rgvvz.hsj
+120084 rvgctqpr.qpp
+302397 wtmlrm
+$ cd mmhb
+$ ls
+57621 ndhvh.jbq
+$ cd ..
+$ cd ..
+$ cd vnrgqg
+$ ls
+dir fpmpzvj
+dir gtqwbhc
+213709 hmwqgjnl
+283893 hmwqgjnl.bbc
+dir lnw
+dir mmhtpz
+177958 rcm.psp
+68642 vzr.gwd
+297210 zqcvpgfm.sgv
+$ cd fpmpzvj
+$ ls
+62127 mmhtpz.mwv
+$ cd ..
+$ cd gtqwbhc
+$ ls
+174559 rgvvz
+$ cd ..
+$ cd lnw
+$ ls
+dir lbbg
+162886 mlsb
+dir rgvvz
+dir szgmtgb
+253283 zpvqj.crr
+$ cd lbbg
+$ ls
+dir jgwj
+dir ndljhbv
+dir smhzdbn
+68451 sznhpr
+$ cd jgwj
+$ ls
+290222 fnpmb
+148122 lnjvpcgq.zqs
+dir ptwrtdcf
+4669 rcm.psp
+76708 thgtnwhq
+$ cd ptwrtdcf
+$ ls
+dir gcjpt
+$ cd gcjpt
+$ ls
+dir hmwqgjnl
+$ cd hmwqgjnl
+$ ls
+259660 lnjvpcgq.zqs
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ndljhbv
+$ ls
+226511 qmtttllc.wgt
+$ cd ..
+$ cd smhzdbn
+$ ls
+161029 mjwqn.bfs
+49691 msfmjd.vlr
+77941 ncwrv.fjc
+12615 ndhvh.jbq
+19222 rlrnrcqw.cgh
+$ cd ..
+$ cd ..
+$ cd rgvvz
+$ ls
+270852 msfmjd.vlr
+$ cd ..
+$ cd szgmtgb
+$ ls
+167819 ndhvh.jbq
+$ cd ..
+$ cd ..
+$ cd mmhtpz
+$ ls
+6153 msfmjd.vlr
+$ cd ..
+$ cd ..
+$ cd zrpgb
+$ ls
+dir dgcrgg
+dir dscbfp
+dir gcdtbrnj
+dir hmwqgjnl
+284848 hnfqrh.nll
+dir jsjrg
+16735 lbbg.lpg
+274897 vrp.fvm
+$ cd dgcrgg
+$ ls
+dir gpvhhh
+210466 lbbg
+161257 tqc.qgg
+dir zggnvwcb
+$ cd gpvhhh
+$ ls
+100124 msfmjd.vlr
+$ cd ..
+$ cd zggnvwcb
+$ ls
+76550 dsmvrsp.hht
+106682 swj.pnq
+$ cd ..
+$ cd ..
+$ cd dscbfp
+$ ls
+297842 msfmjd.vlr
+$ cd ..
+$ cd gcdtbrnj
+$ ls
+78674 jmc.sst
+$ cd ..
+$ cd hmwqgjnl
+$ ls
+280262 hmwqgjnl
+dir hrl
+dir mmhtpz
+159812 rcm.psp
+$ cd hrl
+$ ls
+dir cqwbgn
+dir nlqd
+dir wmgqpt
+$ cd cqwbgn
+$ ls
+91489 msfmjd.vlr
+$ cd ..
+$ cd nlqd
+$ ls
+1982 jczs.rgg
+172223 rcm.psp
+$ cd ..
+$ cd wmgqpt
+$ ls
+dir hmwqgjnl
+91172 jczs.rgg
+125726 lbbg
+147883 rgvvz
+99929 rhzwrpw.jml
+145844 tzzqwr
+$ cd hmwqgjnl
+$ ls
+198790 mlccths
+284058 mmhtpz.dvb
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd mmhtpz
+$ ls
+60918 hmwqgjnl.jhw
+220709 lnjvpcgq.zqs
+$ cd ..
+$ cd ..
+$ cd jsjrg
+$ ls
+230757 czg
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd mjzqq
+$ ls
+33792 fsrws.tdp
+dir lbbg
+50734 lnz.fwp
+268057 wbgjwnb
+$ cd lbbg
+$ ls
+207413 cqf
+$ cd ..
+$ cd ..
+$ cd sjbpgc
+$ ls
+73862 lbbg.ddv
+$ cd ..
+$ cd zfsbvs
+$ ls
+dir lbbg
+10390 lqgh.fpl
+147426 mqw.fmr
+273227 rcm.psp
+$ cd lbbg
+$ ls
+dir mmhtpz
+$ cd mmhtpz
+$ ls
+25218 dtdt
+
+