day 16, part 1
This commit is contained in:
parent
4c829d84c1
commit
c053911eaf
|
@ -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
|
||||
}
|
|
@ -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
|
Loading…
Reference in New Issue