Advertisement
Guest User

Nunki3’s AHK day 7

a guest
Dec 7th, 2022
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. FileRead, Input, 7.txt
  2.  
  3. cDirs := []
  4. dirs := {}
  5.  
  6. for i, line in StrSplit(Input, "`r`n") {
  7.     if (SubStr(line, 1, 4) = "$ cd") {
  8.         if (SubStr(line, 6) = "..")
  9.             cDirs.Pop()
  10.         else if (SubStr(line, 6) = "/") {
  11.             cDirs := ["/"]
  12.             if !dirs[MakeDirStr(cDirs)]
  13.                 dirs[MakeDirStr(cDirs)] := 0
  14.         }
  15.         else {
  16.             cDirs.Push(SubStr(line, 6))
  17.             if !dirs[MakeDirStr(cDirs)]
  18.                 dirs[MakeDirStr(cDirs)] := 0
  19.         }
  20.     }
  21.     else if (SubStr(line, 1, 4) = "dir ") or (SubStr(line, 1, 4) = "$ ls")
  22.         Continue
  23.     else {
  24.         dirStr := ""
  25.         for i, dir in cDirs {
  26.             dirStr .= dir
  27.             dirs[dirStr] += StrSplit(line, A_Space)[1]
  28.         }
  29.     }
  30. }
  31.  
  32. MakeDirStr(cDirs) {
  33.     dirStr := ""
  34.     for i, dir in cDirs
  35.         dirStr .= dir
  36.     Return dirStr
  37. }
  38.  
  39. ;1
  40. total := 0
  41. for i, size in dirs {
  42.     if (size <= 100000)
  43.         total += size
  44. }
  45. MsgBox, % total
  46.  
  47. ;2
  48. missing := 30000000 - (70000000 - dirs["/"])
  49. sSize := 70000000
  50. for i, size in dirs {
  51.     if (size >= missing) and (size < sSize)
  52.         sSize := size
  53. }
  54. MsgBox, % sSize
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement