Compare commits

...

3 Commits

Author SHA1 Message Date
sejo b5bfb20e9b stats day 17 2021-12-16 23:59:10 -06:00
sejo 1da4c5f61c day 17 part 2! 2021-12-16 23:58:27 -06:00
sejo c053911eaf day 16, part 1 2021-12-16 23:42:35 -06:00
3 changed files with 81 additions and 0 deletions

66
17/17.awk Normal file
View File

@ -0,0 +1,66 @@
function step(){
x += velx
y += vely
velx += (velx>0) ? -1 : (velx<0) ? 1 : 0
vely -= 1
}
function insidearea(){
return x>=xmin && x<=xmax && y>=ymin && y<=ymax
}
function outofbounds(){
return y<ymin
}
{
print $3
gsub("x=","",$3)
gsub(",","",$3)
split($3,arr,/\.\./)
xmin= arr[1]
xmax = arr[2]
print $4
gsub("y=","",$4)
split($4,arr,/\.\./)
ymin= arr[1]
ymax = arr[2]
}
END{
print xmin,xmax,ymin,ymax
maxy = 0; maxyvelx = 0; maxyvely = 0;
count = 0
minxa=0; minya=0; maxxa=0; maxya=0
# 0 -75 275 74
for(tvely=-100;tvely<=100;tvely++){
for(tvelx=0;tvelx<=300;tvelx++){
x=0; y=0; localmaxy = 0;
velx = tvelx; vely = tvely;
delete visited;
# print "testing", velx, vely
while(!insidearea() && !outofbounds()){
step();
# print x,y,velx,vely
if(y>localmaxy) localmaxy = y
}
if(insidearea()){
print "arrived"
count++
if(tvelx<minxa) minxa = tvelx
if(tvely<minya) minya = tvely
if(tvelx>maxxa) maxxa = tvelx
if(tvely>maxya) maxya = tvely
if(localmaxy>maxy){
maxy = localmaxy
maxyvelx = tvelx
maxyvely = tvely
# print "new max", maxy, maxyvelx, maxyvely
}
print tvelx, tvely, localmaxy, maxy
}
}
}
print "part 1:", maxy, maxyvelx, maxyvely
print "part 2:", count
print minxa, minya, maxxa, maxya
}

14
17/Makefile Normal file
View File

@ -0,0 +1,14 @@
1t:
awk -f 17.awk test
1i:
awk -f 17.awk input
2t:
awk -f 17_2.awk test
2i:
awk -f 17_2.awk input
paste:
xclip -sel c -o > test

View File

@ -27,6 +27,7 @@ awk -c -f 01.awk inputfile
```
-------Part 1-------- -------Part 2--------
Day Time Rank Score Time Rank Score
17 00:41:03 2839 0 00:56:57 2841 0
16 00:34:15 550 0 02:21:09 3657 0
15 16:52:00 24420 0 17:30:02 20656 0 --- thanks alderwick for your help!
14 00:27:53 4878 0 01:07:47 3311 0