day 16, part 1

This commit is contained in:
sejo 2021-12-16 23:42:35 -06:00
parent 4c829d84c1
commit c053911eaf
2 changed files with 71 additions and 0 deletions

57
17/17.awk Normal file
View File

@ -0,0 +1,57 @@
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*10
}
{
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;
for(tvely=10;tvely<=100;tvely++){
for(tvelx=10;tvelx<=100;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"
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
}

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