FS←{𝕤
cwd←⟨⟩
- nothing←⟨0,2⟩⥊⟨⟩ # 0 by 23 array, to return from "cd"
+ nothing←⟨0,2⟩⥊⟨⟩ # 0 by 2 array, to return from "cd"
Exec⇐{
⟨⟩𝕊⟨"cd", "/"⟩: cwd↩⟨⟩, nothing;
⟨⟩𝕊⟨"cd", ".."⟩: cwd ¯1⊸↓↩, nothing;
Main←{
dev←FS @
- files←∾{(1↓𝕩)dev.Cmd(⊑𝕩)}¨𝕩
- dirs ←⍷({"dir"≡⊑𝕩}˘files)/files
- dirs â\86©Â¯1â\8a\8fâ\8d\89dirs
- filesâ\86©â\8d·({"dir"â\89¢â\8a\91ð\9d\95©}Ë\98files)/files
- [sizes,filepaths]←⍉files
- sizes •ParseFloat¨↩
- DirSize←{𝕊dir:+´({∨´dir⊸≡¨↑𝕩}¨filepaths)/sizes}
+ [sizes,paths]←⍉⍷∾{(1↓𝕩)dev.Cmd(⊑𝕩)}¨𝕩
+ isdir←"dir"⊸≡¨sizes
+ dirs â\86\90isdir/paths
+ filesâ\86\90(¬isdir)/paths
+ sizes↩•ParseFloat¨(¬isdir)/sizes
+ files↩({"dir"≢⊑𝕩}˘files)/files
+ DirSize←{𝕊dir:+´({∨´dir⊸≡¨↑𝕩}¨files)/sizes}
+´ {100000≥𝕩}⊸/ DirSize¨dirs
}
FS←{𝕤
cwd←⟨⟩
- nothing←⟨0,2⟩⥊⟨⟩ # 0 by 23 array, to return from "cd"
+ nothing←⟨0,2⟩⥊⟨⟩ # 0 by 2 array, to return from "cd"
Exec⇐{
⟨⟩𝕊⟨"cd", "/"⟩: cwd↩⟨⟩, nothing;
⟨⟩𝕊⟨"cd", ".."⟩: cwd ¯1⊸↓↩, nothing;
Main←{
dev←FS @
- files←∾{(1↓𝕩)dev.Cmd(⊑𝕩)}¨𝕩
- dirs ←⍷({"dir"≡⊑𝕩}˘files)/files
- dirs â\86©Â¯1â\8a\8fâ\8d\89dirs
- filesâ\86©â\8d·({"dir"â\89¢â\8a\91ð\9d\95©}Ë\98files)/files
- [sizes,filepaths]←⍉files
- sizes •ParseFloat¨↩
- DirSize←{𝕊dir:+´({∨´dir⊸≡¨↑𝕩}¨filepaths)/sizes}
+ [sizes,paths]←⍉⍷∾{(1↓𝕩)dev.Cmd(⊑𝕩)}¨𝕩
+ isdir←"dir"⊸≡¨sizes
+ dirs â\86\90isdir/paths
+ filesâ\86\90(¬isdir)/paths
+ sizes↩•ParseFloat¨(¬isdir)/sizes
+ files↩({"dir"≢⊑𝕩}˘files)/files
+ DirSize←{𝕊dir:+´({∨´dir⊸≡¨↑𝕩}¨files)/sizes}
free←70000000-DirSize⟨⟩
need←30000000-free
⌊´{need≤𝕩}⊸/DirSize¨dirs