Guest User

Untitled

a guest
Dec 3rd, 2025
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const input = await Bun.file("input.txt").text();
  2.  
  3. const grid = input.split("\n").map((r) => r.split(""));
  4.  
  5. let total = 0;
  6. for (let y = 0; y < grid.length; y++) {
  7.     for (let x = 0; x < grid[0]!.length; x++) {
  8.         if (grid[y]![x] != "@") continue;
  9.         let rolls = 0;
  10.         for (let dy = -1; dy <= 1; dy++) {
  11.             for (let dx = -1; dx <= 1; dx++) {
  12.                 if (dy == 0 && dx == 0) continue;
  13.                 if (grid[y + dy]?.[x + dx] == "@") rolls++;
  14.             }
  15.         }
  16.         if (rolls < 4) total++;
  17.     }
  18. }
  19. console.log("A:", total);
  20.  
  21. let totalRemoved = 0;
  22. while (true) {
  23.     let removed = 0;
  24.     for (let y = 0; y < grid.length; y++) {
  25.         for (let x = 0; x < grid[0]!.length; x++) {
  26.             if (grid[y]![x] != "@") continue;
  27.             let rolls = 0;
  28.             for (let dy = -1; dy <= 1; dy++) {
  29.                 for (let dx = -1; dx <= 1; dx++) {
  30.                     if (dy == 0 && dx == 0) continue;
  31.                     if (grid[y + dy]?.[x + dx] == "@") rolls++;
  32.                 }
  33.             }
  34.             if (rolls < 4) {
  35.                 grid[y]![x]! = ".";
  36.                 removed++;
  37.             }
  38.         }
  39.     }
  40.     if (removed == 0) break;
  41.     totalRemoved += removed;
  42. }
  43. console.log("B:", totalRemoved);
  44.  
Advertisement
Add Comment
Please, Sign In to add comment