advent-of-code/12021/05/05_2_new.awk

39 lines
527 B
Awk

{
c1 = $1
c2 = $3
split(c1,p1,",")
split(c2,p2,",")
x1 = p1[1]; y1=p1[2]
x2 = p2[1]; y2=p2[2]
# print x1, y1, x2, y2
if(y2>y1){
x=x1
for(y=y1;y<=y2;y++){
covers[x,y]++
x+= (x2>x1)? 1 : (x2==x1)? 0 :-1
}
}
else if(y2<y1){
x=x1
for(y=y1;y>=y2;y--){
covers[x,y]++
x+=(x2>x1) ? 1 : (x2==x1)? 0: -1
}
}
else{
if(x2>x1){
for(x=x1;x<=x2;x++) covers[x,y1] +=1
}else{
for(x=x1;x>=x2;x--) covers[x,y1] +=1
}
}
}
END{
count = 0
for(i in covers){
count += covers[i]>1
}
print count
}