diff --git a/11/11_new.awk b/11/11_new.awk new file mode 100644 index 0000000..822f4af --- /dev/null +++ b/11/11_new.awk @@ -0,0 +1,41 @@ +BEGIN { FS = "" } + +{ for(i=1;i<=NF;i++) o[NR,i] = $i } + +END{ + s=1 + while(nflashes!=NF*NR){ + nflashes = 0 + delete visited + for(i in o) o[i]++ + + do{ + for(y=1;y<=NR;y++){ + for(x=1;x<=NF;x++){ + if(!visited[y,x] && o[y,x]>9){ + if(y>1 && x>1) o[y-1,x-1]++ + if(y>1 && x1) o[y-1,x]++ + if(x>1) o[y,x-1]++ + if(x1) o[y+1,x-1]++ + if(y9) && !visited[i] + + } while(tochange) + + for(i in o ){ + if( o[i]>9 ){ o[i] = 0; nflashes++ } + } + flashes += nflashes + if(s==100) print "part 1:", flashes + s++ + } + print "part 2: step", s-1 +}