Taddeus Kroes 3 éve
szülő
commit
773fdc2528
2 módosított fájl, 989 hozzáadás és 0 törlés
  1. 27 0
      2022/07_filesystem.py
  2. 962 0
      2022/input/7

+ 27 - 0
2022/07_filesystem.py

@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+import sys
+from collections import defaultdict
+
+def dirsizes(terminal):
+    sizes = defaultdict(int)
+    path = []
+    def add_to_parent():
+        curdir = sizes['/'.join(path)]
+        path.pop()
+        sizes['/'.join(path)] += curdir
+    for line in terminal:
+        if line.startswith('$ cd '):
+            d = line[5:-1]
+            if d == '..':
+                add_to_parent()
+            elif d != '/':
+                path.append(d)
+        elif line[0].isdigit():
+            sizes['/'.join(path)] += int(line.split()[0])
+    while path:
+        add_to_parent()
+    return sorted(sizes.values())
+
+sizes = dirsizes(sys.stdin)
+print(sum(size for size in sizes if size <= 100000))
+print(next(size for size in sizes if size >= sizes[-1] - 40000000))

+ 962 - 0
2022/input/7

@@ -0,0 +1,962 @@
+$ cd /
+$ ls
+53302 chvtw.czb
+240038 dwhl.nrn
+124868 dwhl.vvb
+dir fml
+dir jbgpgvj
+dir qjphltd
+dir wlfprc
+dir zqvh
+dir zzmgz
+$ cd fml
+$ ls
+dir bztjtqg
+176916 crgzcmrt.jlr
+199024 gpnmqlr.rdb
+dir lwpbbb
+dir nsdgz
+186077 sfrlrc.jtj
+$ cd bztjtqg
+$ ls
+dir dwhl
+dir lwtrqrqq
+dir nsdgz
+105281 qlsr
+$ cd dwhl
+$ ls
+dir fqdzv
+198583 mmrplb.ncb
+42601 qmdjhrsg
+68484 rnmsmcqn.cwf
+dir wlfprc
+$ cd fqdzv
+$ ls
+140953 mfprqmdp.pnl
+$ cd ..
+$ cd wlfprc
+$ ls
+180121 swjgs.glp
+$ cd ..
+$ cd ..
+$ cd lwtrqrqq
+$ ls
+224392 swjgs.glp
+$ cd ..
+$ cd nsdgz
+$ ls
+5704 chvtw.wzb
+158254 gppbtqsw.mrr
+192803 pltnst.mnt
+265646 pst.njs
+dir qzdb
+$ cd qzdb
+$ ls
+171982 jcjcv
+125788 tfr.hlv
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd lwpbbb
+$ ls
+dir chvtw
+88879 dtgbns.jfw
+dir fgfm
+dir nsdgz
+216019 wlfprc.bhp
+$ cd chvtw
+$ ls
+67998 mfprqmdp.pnl
+$ cd ..
+$ cd fgfm
+$ ls
+85968 mfprqmdp.pnl
+$ cd ..
+$ cd nsdgz
+$ ls
+171874 pfwzjm.wbv
+110070 vdpnmst.wjm
+$ cd ..
+$ cd ..
+$ cd nsdgz
+$ ls
+dir cqwh
+33973 dwhl.clh
+dir rdcmr
+140633 sfrlrc.jtj
+dir stqhwh
+24695 vdpnmst.wqp
+222421 wlfprc.dcf
+225333 zfq
+$ cd cqwh
+$ ls
+220212 bbpbg.sch
+dir dwhl
+203595 nsdgz.fcc
+123921 nwjds
+145468 sqg.dpb
+199052 wvqphtff.stc
+$ cd dwhl
+$ ls
+51966 hfhlcjp.mtn
+23657 hhflcsql.pns
+241753 mwbgzn.fpn
+247935 srdgnb.zbj
+$ cd ..
+$ cd ..
+$ cd rdcmr
+$ ls
+215436 crgzcmrt.jlr
+116617 ndwd.drq
+$ cd ..
+$ cd stqhwh
+$ ls
+28083 cfmcj.plz
+dir chvtw
+229939 hwf.wzr
+dir twfztmq
+219525 vdpnmst.mcb
+dir wlfprc
+$ cd chvtw
+$ ls
+120506 lspn
+214538 mfprqmdp.pnl
+$ cd ..
+$ cd twfztmq
+$ ls
+231371 mbsrnbww
+$ cd ..
+$ cd wlfprc
+$ ls
+dir dncq
+dir fmqzns
+$ cd dncq
+$ ls
+40876 swjgs.glp
+$ cd ..
+$ cd fmqzns
+$ ls
+23604 chvtw.bhw
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd jbgpgvj
+$ ls
+121937 crgzcmrt.jlr
+$ cd ..
+$ cd qjphltd
+$ ls
+85066 chvtw
+dir dwhl
+dir fcqfgnvh
+238098 hbzf.wgc
+dir ltm
+dir mbbvp
+118907 mfprqmdp.pnl
+dir mgnl
+dir nhmqcpdl
+147292 qtjcqtwt.vtn
+dir tvplqllb
+$ cd dwhl
+$ ls
+dir cgrdfzc
+197650 chvtw.bfz
+109566 dwhl.vww
+dir jgzjzvh
+80828 sfsz
+154910 vdpnmst.fmz
+dir zfrpc
+$ cd cgrdfzc
+$ ls
+145237 ffzd
+dir jqwgwcm
+72905 sztrgnwr.gqw
+58294 vdpqccdl.ddc
+$ cd jqwgwcm
+$ ls
+115858 nsdgz.zdf
+$ cd ..
+$ cd ..
+$ cd jgzjzvh
+$ ls
+dir chvtw
+$ cd chvtw
+$ ls
+dir zmwmcgcr
+$ cd zmwmcgcr
+$ ls
+dir wjq
+$ cd wjq
+$ ls
+121465 rbg.plr
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd zfrpc
+$ ls
+dir cqv
+dir llwsnsd
+dir qrmg
+$ cd cqv
+$ ls
+dir vdpnmst
+$ cd vdpnmst
+$ ls
+170492 qsvf
+273024 sfrlrc.jtj
+$ cd ..
+$ cd ..
+$ cd llwsnsd
+$ ls
+42903 dwhl.shp
+179054 fvwwghsb.dll
+dir glhdqhf
+dir wblwwf
+dir wlfprc
+dir zrjzmj
+$ cd glhdqhf
+$ ls
+70524 pzll.cjc
+29836 wlfprc.bns
+$ cd ..
+$ cd wblwwf
+$ ls
+209990 jcfss
+$ cd ..
+$ cd wlfprc
+$ ls
+97159 djqs.gqb
+$ cd ..
+$ cd zrjzmj
+$ ls
+164830 fwrpcrbg.pvg
+83144 vszfdj
+$ cd ..
+$ cd ..
+$ cd qrmg
+$ ls
+42025 nsdgz.sjw
+114620 swjgs.glp
+269872 tgptmhz.zch
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd fcqfgnvh
+$ ls
+126854 gbbfpz.rjv
+dir gbzslwz
+dir nsdgz
+200981 pmswh.nbz
+45443 tdqwszvc
+227183 vdpnmst.tbt
+$ cd gbzslwz
+$ ls
+dir njzvwjh
+$ cd njzvwjh
+$ ls
+44070 lvsjfvll.bfc
+$ cd ..
+$ cd ..
+$ cd nsdgz
+$ ls
+dir cmfz
+116103 fztsf.lvz
+59406 mfprqmdp.pnl
+dir wlfprc
+$ cd cmfz
+$ ls
+37680 ncshvdst
+$ cd ..
+$ cd wlfprc
+$ ls
+273982 jcvqttf.fqz
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ltm
+$ ls
+19761 mfprqmdp.pnl
+$ cd ..
+$ cd mbbvp
+$ ls
+12482 wnv.vps
+46227 zlnlzzn
+$ cd ..
+$ cd mgnl
+$ ls
+dir bpc
+dir chvtw
+240396 dwhl
+115971 hbbnwwh
+33819 mfprqmdp.pnl
+218670 nnbjb
+dir qwjp
+107343 tmhp.jst
+dir vfrbjgdm
+dir ztpggl
+$ cd bpc
+$ ls
+dir chvtw
+63061 dwhl.ftj
+dir dzlv
+119367 gmp.fdd
+dir hdvdfnw
+dir nsdgz
+dir pds
+48753 sfrlrc.jtj
+186706 vdpnmst.lnb
+182938 wlfprc.dvf
+$ cd chvtw
+$ ls
+29411 sfrlrc.jtj
+$ cd ..
+$ cd dzlv
+$ ls
+140503 vdpnmst.dtl
+$ cd ..
+$ cd hdvdfnw
+$ ls
+36521 crgzcmrt.jlr
+dir hsjb
+231528 mnl.scm
+dir pczq
+$ cd hsjb
+$ ls
+204248 swjgs.glp
+$ cd ..
+$ cd pczq
+$ ls
+18842 qzwd.tfn
+$ cd ..
+$ cd ..
+$ cd nsdgz
+$ ls
+dir bpgdn
+106092 nsdgz.vqs
+71032 pgbvnv
+47006 pthbb.znn
+dir rll
+dir wlfprc
+$ cd bpgdn
+$ ls
+54889 wlfprc
+$ cd ..
+$ cd rll
+$ ls
+135900 shgfznp
+$ cd ..
+$ cd wlfprc
+$ ls
+dir dwhl
+160547 vddtj.jrh
+114072 vdld.ndv
+258527 wlfprc.lgg
+$ cd dwhl
+$ ls
+9122 nvptwfp.qhh
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd pds
+$ ls
+174820 svq.gmz
+133508 zhpcdqnr.pmf
+$ cd ..
+$ cd ..
+$ cd chvtw
+$ ls
+dir vhspmg
+$ cd vhspmg
+$ ls
+dir flzpg
+$ cd flzpg
+$ ls
+205811 sdtgsjsd
+262847 zbmsmzq.wwt
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd qwjp
+$ ls
+dir crzqrz
+dir gwwrhjh
+232315 mfprqmdp.pnl
+dir nsdgz
+248778 qfsds.rhh
+252980 vdpnmst.qgj
+$ cd crzqrz
+$ ls
+202759 srdgnb.zbj
+$ cd ..
+$ cd gwwrhjh
+$ ls
+dir lvnsvm
+$ cd lvnsvm
+$ ls
+191751 tdrrztrn.rfb
+$ cd ..
+$ cd ..
+$ cd nsdgz
+$ ls
+273767 chvtw.gzr
+244356 pww.qgb
+$ cd ..
+$ cd ..
+$ cd vfrbjgdm
+$ ls
+dir chvtw
+132015 cznw.mfc
+dir fnw
+dir gvddj
+dir jdzsng
+204950 lmprp
+dir nsdgz
+187795 whd.qlv
+$ cd chvtw
+$ ls
+dir bfwl
+dir fvfmzg
+dir mzmdjhjq
+153152 srdgnb.zbj
+239385 stcfdsv.fjj
+dir vdfw
+93411 vdpnmst
+186283 wlfprc.hbq
+dir wvgj
+$ cd bfwl
+$ ls
+dir frrsl
+1168 sch
+dir vnzvmpmg
+dir wlfprc
+$ cd frrsl
+$ ls
+164016 btzft.qdc
+$ cd ..
+$ cd vnzvmpmg
+$ ls
+dir hfnjf
+$ cd hfnjf
+$ ls
+267448 dqts.pgp
+$ cd ..
+$ cd ..
+$ cd wlfprc
+$ ls
+dir hsbg
+dir mgzvqhtr
+dir nbbdv
+88560 wflghrq.lws
+$ cd hsbg
+$ ls
+191520 cmdshfgh
+283887 crgzcmrt.jlr
+dir dwhl
+$ cd dwhl
+$ ls
+103303 vdpnmst
+$ cd ..
+$ cd ..
+$ cd mgzvqhtr
+$ ls
+159296 dvlhwsj.gvl
+$ cd ..
+$ cd nbbdv
+$ ls
+dir hnv
+$ cd hnv
+$ ls
+138102 wlfprc
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd fvfmzg
+$ ls
+205962 ltzsj
+$ cd ..
+$ cd mzmdjhjq
+$ ls
+178012 dwhl.dfd
+155247 mmmlqppm.hcz
+85643 npllz.ltb
+122027 nsdgz.ngz
+dir wlfprc
+dir zrmt
+$ cd wlfprc
+$ ls
+171189 rgsbqlw
+$ cd ..
+$ cd zrmt
+$ ls
+dir dwhl
+$ cd dwhl
+$ ls
+75018 qbwm
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd vdfw
+$ ls
+77110 ffsvhm
+dir lmplrbzc
+dir ttq
+$ cd lmplrbzc
+$ ls
+dir mmf
+$ cd mmf
+$ ls
+127691 sfrlrc.jtj
+$ cd ..
+$ cd ..
+$ cd ttq
+$ ls
+dir qwfvql
+202107 rpgqwfb
+dir zhfg
+$ cd qwfvql
+$ ls
+dir tbldv
+276153 vdpnmst
+$ cd tbldv
+$ ls
+65603 mfprqmdp.pnl
+218354 wdbprnm
+$ cd ..
+$ cd ..
+$ cd zhfg
+$ ls
+dir wlfprc
+$ cd wlfprc
+$ ls
+dir dggm
+273082 mfprqmdp.pnl
+$ cd dggm
+$ ls
+197043 chm
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd wvgj
+$ ls
+163854 pcmbb.gwc
+$ cd ..
+$ cd ..
+$ cd fnw
+$ ls
+84321 bjnn.mqc
+dir dmcbshg
+dir mdvt
+$ cd dmcbshg
+$ ls
+dir fsh
+$ cd fsh
+$ ls
+dir cgstfrbl
+$ cd cgstfrbl
+$ ls
+227959 vdpnmst
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd mdvt
+$ ls
+dir mts
+dir pwrvqrjc
+dir qwrh
+52239 sfrlrc.jtj
+$ cd mts
+$ ls
+242122 mfprqmdp.pnl
+$ cd ..
+$ cd pwrvqrjc
+$ ls
+40460 crgzcmrt.jlr
+173816 jzhvzrnv
+56851 swjgs.glp
+218509 wlfprc.cvr
+$ cd ..
+$ cd qwrh
+$ ls
+240079 lzwbvw.zvf
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd gvddj
+$ ls
+dir cgbpbw
+24565 chvtw.czc
+244373 nsdgz.mzj
+281443 srdgnb.zbj
+63755 swjgs.glp
+dir vdpnmst
+247101 wlfprc.nzd
+dir zlh
+$ cd cgbpbw
+$ ls
+dir bcbgqzj
+dir dwhl
+dir nhtz
+dir nlnbr
+$ cd bcbgqzj
+$ ls
+199932 vdpnmst.zvh
+$ cd ..
+$ cd dwhl
+$ ls
+116043 nsdgz.ttd
+$ cd ..
+$ cd nhtz
+$ ls
+196534 cthbt.tjj
+$ cd ..
+$ cd nlnbr
+$ ls
+dir chvtw
+dir dwhl
+75467 lhzhvn
+dir ncmpwvrd
+dir vdpnmst
+160988 wlfprc
+$ cd chvtw
+$ ls
+119163 sfrlrc.jtj
+226449 srdgnb.zbj
+$ cd ..
+$ cd dwhl
+$ ls
+dir dwhl
+$ cd dwhl
+$ ls
+283831 ptssf
+$ cd ..
+$ cd ..
+$ cd ncmpwvrd
+$ ls
+169547 chvtw.hnh
+142447 wlfprc.pds
+$ cd ..
+$ cd vdpnmst
+$ ls
+276326 jslgmcp.mmz
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd vdpnmst
+$ ls
+36500 dwhl
+186159 nwwhrf
+$ cd ..
+$ cd zlh
+$ ls
+245705 chvtw.jgd
+$ cd ..
+$ cd ..
+$ cd jdzsng
+$ ls
+48648 dnzlvjr
+63253 fnzfrtrp.bll
+9962 zcgg.ldc
+$ cd ..
+$ cd nsdgz
+$ ls
+188613 cvvr
+$ cd ..
+$ cd ..
+$ cd ztpggl
+$ ls
+dir vbrtv
+dir vdpnmst
+236782 vqm.zdj
+$ cd vbrtv
+$ ls
+35655 rswctm
+$ cd ..
+$ cd vdpnmst
+$ ls
+143090 crgzcmrt.jlr
+242681 mfprqmdp.pnl
+146639 vdpnmst
+63563 vdpnmst.flr
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd nhmqcpdl
+$ ls
+dir dwhl
+dir nsdgz
+dir tgwtvm
+$ cd dwhl
+$ ls
+253652 swjgs.glp
+$ cd ..
+$ cd nsdgz
+$ ls
+208378 crgzcmrt.jlr
+$ cd ..
+$ cd tgwtvm
+$ ls
+dir jptp
+dir qdjl
+dir qngflrgr
+$ cd jptp
+$ ls
+103248 chvtw.pgr
+65015 pvz
+$ cd ..
+$ cd qdjl
+$ ls
+149177 chvtw.rzd
+$ cd ..
+$ cd qngflrgr
+$ ls
+98041 drfl.jfq
+238883 jjzqzmm
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd tvplqllb
+$ ls
+107011 chvtw.mdn
+91988 dwhl
+84875 ftwz.fzj
+dir hpfr
+dir wdgzsg
+$ cd hpfr
+$ ls
+dir bbgbnr
+dir dwhl
+131524 fdpg
+dir jvddlfsf
+250910 mfprqmdp.pnl
+174858 qpl.qtm
+271840 sjncl.cjb
+dir wlfprc
+$ cd bbgbnr
+$ ls
+139093 chvtw
+21309 crgzcmrt.jlr
+dir nsjfgmrs
+22977 qqt.mvb
+129496 srdgnb.zbj
+$ cd nsjfgmrs
+$ ls
+dir ppwm
+167856 tvsqvsrf.plp
+dir vztfzgrd
+$ cd ppwm
+$ ls
+161664 ssl.fnd
+$ cd ..
+$ cd vztfzgrd
+$ ls
+213100 fwjrgdbb
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd dwhl
+$ ls
+124522 gtmgtq
+$ cd ..
+$ cd jvddlfsf
+$ ls
+78145 zpcc.wzt
+$ cd ..
+$ cd wlfprc
+$ ls
+143769 mfprqmdp.pnl
+$ cd ..
+$ cd ..
+$ cd wdgzsg
+$ ls
+209123 chvtw.lpr
+191060 fqzjpnfb.lmd
+dir gbcqgszh
+dir jzhvmj
+17755 mfprqmdp.pnl
+dir mvvltrs
+204706 wfmttzc.cdb
+dir wlfprc
+$ cd gbcqgszh
+$ ls
+263162 crgzcmrt.jlr
+277604 rddzmchb.fwr
+$ cd ..
+$ cd jzhvmj
+$ ls
+2388 dnqs
+249647 sfrlrc.jtj
+276429 vcn
+dir wlfprc
+$ cd wlfprc
+$ ls
+179811 mfprqmdp.pnl
+$ cd ..
+$ cd ..
+$ cd mvvltrs
+$ ls
+171792 bzq
+dir chvtw
+41358 crgzcmrt.jlr
+86479 ddsjsbp
+dir dqvlqnn
+227156 srdgnb.zbj
+dir thwdjln
+dir wjl
+dir wlfprc
+$ cd chvtw
+$ ls
+61085 crgzcmrt.jlr
+72256 rbnvsbm
+154180 wmwnpf
+$ cd ..
+$ cd dqvlqnn
+$ ls
+42736 chvtw.wcd
+$ cd ..
+$ cd thwdjln
+$ ls
+114664 hdjvgpr
+51273 pdsgj.tvr
+$ cd ..
+$ cd wjl
+$ ls
+49897 swjgs.glp
+$ cd ..
+$ cd wlfprc
+$ ls
+dir chvtw
+222869 zffqnb.plq
+$ cd chvtw
+$ ls
+84667 mfprqmdp.pnl
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd wlfprc
+$ ls
+180812 cjbjffhs.rlc
+dir dwhl
+dir rvgrjsps
+229144 vql.lww
+210367 wlfprc.ghn
+$ cd dwhl
+$ ls
+220631 sbrdjv.cdt
+24851 swjgs.glp
+$ cd ..
+$ cd rvgrjsps
+$ ls
+62849 wrlzz.nwn
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd wlfprc
+$ ls
+88598 chvtw.vvq
+222226 mssqb.gwc
+54178 zjttbct.rft
+$ cd ..
+$ cd zqvh
+$ ls
+124084 wmswcs.wcd
+$ cd ..
+$ cd zzmgz
+$ ls
+143006 bbttfvt
+dir vdpnmst
+$ cd vdpnmst
+$ ls
+dir chvtw
+107664 crgzcmrt.jlr
+175290 dmp.hqm
+dir dwhl
+dir jtbh
+dir lwbqctd
+203538 swjgs.glp
+dir vdpnmst
+140212 wlfprc
+26253 wlfprc.vqs
+$ cd chvtw
+$ ls
+57311 chvtw.tmb
+183900 vdpnmst.wfl
+$ cd ..
+$ cd dwhl
+$ ls
+46475 lpdfsdb.cgj
+32915 vlhhrq.zld
+$ cd ..
+$ cd jtbh
+$ ls
+255372 chvtw.tmh
+149848 gndwds.mzn
+273202 wlfprc.ghc
+$ cd ..
+$ cd lwbqctd
+$ ls
+dir dbfbfjjw
+dir qbn
+dir qqqfdrst
+dir zhzrhzcv
+$ cd dbfbfjjw
+$ ls
+29216 mfprqmdp.pnl
+17937 vhvbcmlh.wdf
+87790 vqzhr.bsl
+$ cd ..
+$ cd qbn
+$ ls
+dir bdg
+79958 mbzc.qbv
+218421 nsdgz
+$ cd bdg
+$ ls
+103738 crgzcmrt.jlr
+179430 dwhl.gmw
+118482 dwhl.ztl
+dir gmlqjh
+dir phvf
+264818 zzjwzlrn
+$ cd gmlqjh
+$ ls
+116934 wlfprc.rmt
+$ cd ..
+$ cd phvf
+$ ls
+dir dqbjm
+43516 vdpnmst
+$ cd dqbjm
+$ ls
+180654 lvdwvp.mjp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd qqqfdrst
+$ ls
+58625 nsdgz.bmt
+33328 sfrlrc.jtj
+$ cd ..
+$ cd zhzrhzcv
+$ ls
+119179 dhcfzq
+270185 gtmphbt
+$ cd ..
+$ cd ..
+$ cd vdpnmst
+$ ls
+180546 chvtw
+dir htgbz
+133410 lwdm.snh
+134253 swjgs.glp
+$ cd htgbz
+$ ls
+75079 nsdgz.vlj