diff --git a/Mathematics/Fundamentals/HackerRank/Claude/Easy/Strange Grid Again/Strange_Grid_Again.html b/Mathematics/Fundamentals/HackerRank/Claude/Easy/Strange Grid Again/Strange_Grid_Again.html
new file mode 100644
index 00000000..62b2191d
--- /dev/null
+++ b/Mathematics/Fundamentals/HackerRank/Claude/Easy/Strange Grid Again/Strange_Grid_Again.html
@@ -0,0 +1,1684 @@
+
+
+
+
+
+
+
+
+ 概要
+
+ 無限に上方向へ伸びるグリッドが与えられる。底辺が第 1
+ 行、行は下から上へ増加、列は左から右へ増加する。行 r・列 c
+ に位置するセルの値を求める問題。
+
+
+ f(r, c) = 10 × ⌊(r−1)÷2⌋ + 2×(c−1) + (r−1) mod 2
+
+ サンプル:
+ r=6, c=3
+ →
+ 25
+
+
+
+
+
+ ステップ解説
+
+
+
+
+
+
+ ▶ Play
+ ← Prev
+ Next →
+ ↺ Reset
+
+
+
+
+
+
+
+ フローチャート
+
+
+
+
+
+
+
+
+
+
+
+
+ 入力: r, c
+
+
+
+
+ g = (r − 1) ÷ 2
+
+
+ グループ番号(0-indexed)
+
+
+
+
+ base = 10 × g
+
+
+ グループの先頭値
+
+
+
+
+ col_offset = 2 × (c − 1)
+
+
+ 列方向のオフセット
+
+
+
+
+ row_offset = (r − 1) mod 2
+
+
+ グループ内行位置(0 or 1)
+
+
+
+
+ 答え = base + col_offset + row_offset
+
+
+
+
+ フローの説明:
+ 1. 入力 (r, c) を受け取る
+ 2. グループ番号 g を整数除算で計算
+ 3. グループ先頭値 base = 10 × g を求める
+ 4. 列オフセット = 2×(c−1) を加算
+ 5. 行オフセット = (r−1) mod 2 を加算
+ 6. 3値の和を出力
+
+
+
+
+
+ Python 実装
+
+
コピー
+
from __future__ import annotations
+import os
+
+
+def strangeGrid (r : int , c : int ) -> int :
+ """
+ Strange Grid の (r, c) セルの値を返す。
+
+ 公式:
+ g = (r - 1) // 2 # 0-indexed グループ番号
+ base = 10 * g # グループ先頭値
+ col_offset = 2 * (c - 1) # 列方向増分
+ row_offset = (r - 1) % 2 # グループ内行位置 (0 or 1)
+
+ Time Complexity: O(1)
+ Space Complexity: O(1)
+ """
+ g: int = (r - 1 ) // 2
+ base: int = 10 * g
+ col_offset: int = 2 * (c - 1 )
+ row_offset: int = (r - 1 ) % 2
+ return base + col_offset + row_offset
+
+
+if __name__ == "__main__" :
+ fptr = open (os.environ["OUTPUT_PATH" ], "w" )
+ first_multiple_input = input ().rstrip ().split ()
+ r = int (first_multiple_input[0 ])
+ c = int (first_multiple_input[1 ])
+ result = strangeGrid (r, c)
+ fptr.write (str (result) + "\n" )
+ fptr.close ()
+
+
+
+
+
+ 計算量分析
+
+
+
+
+ 手法
+ 時間
+ 空間
+ 備考
+
+
+
+
+
+ 本実装(算術式)
+ 採用
+
+
+ O(1)
+
+
+ O(1)
+
+ 除算・剰余・加算のみ
+
+
+ 行単位スキャン
+
+ O(r)
+
+
+ O(1)
+
+ 行を順次計算
+
+
+ 全探索(仮想)
+
+ O(r×c)
+
+
+ O(r×c)
+
+ グリッド全体を生成
+
+
+
+
+
+
+
+ エッジケースと検証
+
+
+
+
+ r
+ c
+ 期待値
+ 計算値
+ 備考
+
+
+
+
+
+
+
+
+
+ FAQ
+
+
Q. なぜグループ先頭値が 10 刻みなのか?
+
+ A. 5列 × 2行 で 1 グループ当たり 10 個の整数を消費するため。一般化すると N
+ 列の場合 base = 2N×g となる。
+
+
+
+
Q. r=1 の下行が 0 から始まる根拠は?
+
+ A. 問題の定義によりグリッドの左下が値 0。row_offset=0
+ がグループ下行に対応するため自然に成立する。
+
+
+
+
Q. 列が 5 列を超えても公式は成立するか?
+
+ A. はい。col_offset = 2×(c−1) は c
+ が何であっても有効。グループ基底値はグリッドの実際の列数に依存しない。
+
+
+
+
Q. Python の // と % は負の入力で正しく動くか?
+
+ A. 制約 r≥1 より (r−1)≥0 が保証される。Python
+ の床除算・剰余は非負整数に対して数学的定義と一致するため問題なし。
+
+
+
+
+
+ HackerRank — Strange Grid | Python CPython 3.12.4 | O(1)
+
+
+
+
+
+
diff --git a/Mathematics/Fundamentals/HackerRank/Claude/Easy/Strange Grid Again/Strange_Grid_Again.md b/Mathematics/Fundamentals/HackerRank/Claude/Easy/Strange Grid Again/Strange_Grid_Again.md
new file mode 100644
index 00000000..1cec05ac
--- /dev/null
+++ b/Mathematics/Fundamentals/HackerRank/Claude/Easy/Strange Grid Again/Strange_Grid_Again.md
@@ -0,0 +1,433 @@
+## 問題分析
+
+グリッドのパターンを観察します:
+
+| Row | c=1 | c=2 | c=3 | c=4 | c=5 |
+| --- | --- | --- | --- | --- | --- |
+| 1 | 0 | 2 | 4 | 6 | 8 |
+| 2 | 1 | 3 | 5 | 7 | 9 |
+| 3 | 10 | 12 | 14 | 16 | 18 |
+| 4 | 11 | 13 | 15 | 17 | 19 |
+| 5 | 20 | 22 | 24 | 26 | 28 |
+| 6 | 21 | 23 | 25 | 27 | 29 |
+
+**法則:**
+
+- 行は2行1組のグループ `g = (r-1) // 2`(0-indexed)を形成
+- グループ内の基底値: `base = 10 * g`
+- 列のオフセット: `2 * (c-1)`(各列は偶数ステップ)
+- グループ内の行オフセット: `(r-1) % 2`(1行目=0, 2行目=1)
+
+**計算式:** `answer = 10 * ((r-1) // 2) + 2 * (c-1) + (r-1) % 2`
+
+検証: r=6, c=3 → `10*(5//2) + 2*2 + 5%2 = 20 + 4 + 1 = 25` ✓
+
+## 実装
+
+```python
+#!/bin/python3
+
+import math
+import os
+import random
+import re
+import sys
+
+#
+# Complete the 'strangeGrid' function below.
+#
+# The function is expected to return an INTEGER.
+# The function accepts following parameters:
+# 1. INTEGER r
+# 2. INTEGER c
+#
+
+def strangeGrid(r: int, c: int) -> int:
+ """
+ Strange grid value finder.
+
+ Pattern analysis:
+ - Rows form pairs: group g = (r-1) // 2
+ - Group base value: 10 * g
+ - Column offset: 2 * (c - 1)
+ - Row-within-group offset: (r - 1) % 2
+
+ Time Complexity: O(1)
+ Space Complexity: O(1)
+ """
+ g: int = (r - 1) // 2
+ row_offset: int = (r - 1) % 2
+ col_offset: int = 2 * (c - 1)
+ return 10 * g + col_offset + row_offset
+
+if __name__ == '__main__':
+ fptr = open(os.environ['OUTPUT_PATH'], 'w')
+
+ first_multiple_input = input().rstrip().split()
+
+ r = int(first_multiple_input[0])
+
+ c = int(first_multiple_input[1])
+
+ result = strangeGrid(r, c)
+
+ fptr.write(str(result) + '\n')
+
+ fptr.close()
+```
+
+# Strange Grid - 無限グリッドの座標値算出
+
+---
+
+## 目次
+
+- [概要](#overview)
+- [アルゴリズム要点 TL;DR](#tldr)
+- [図解](#figures)
+- [証明のスケッチ](#proof)
+- [計算量](#complexity)
+- [Python 実装](#impl)
+- [CPython 最適化](#cpython)
+- [エッジケースと検証](#edgecases)
+- [FAQ](#faq)
+
+---
+
+\n{file_list_html}\n
\U0001F50E No results found
\n
\n'
+ def render_category_files(structure, sorted_categories):
+ """
+ Builds HTML fragments for category tabs, per-category file lists, and an aggregated all-files list.
+
+ Parameters:
+ structure (Dict[str, List[Tuple[str, str]]]): Mapping from category name to a list of (title, relative_path) pairs for files in that category.
+ sorted_categories (List[str]): Ordered list of category names to render; determines the iteration order and tab order.
+
+ Returns:
+ Tuple[str, str, str]: A 3-tuple with:
+ - tabs_html: HTML for the category tab buttons (includes icon and item count for each category).
+ - tab_contents_html: HTML sections for each category containing the per-category file lists and a "no results" placeholder.
+ - all_files_html: Aggregated HTML list of all file items across all categories.
+ """
+ tabs_html_list = []
+ files_html_sections = []
+ all_files_html_list = [] # Renamed to avoid conflict with outer scope all_files_html
+
+ for category in sorted_categories:
+ files = structure[category]
+ css_cat = html.escape(category.lower(), quote=True)
+ safe_category = html.escape(category, quote=True)
+ icon = category_icons.get(category, '📁') # Default icon if not found
+
+ tabs_html_list.append(f'\n{file_list_html}\n
\U0001F50E No results found
\n
\n')
+
+ return ''.join(tabs_html_list), ''.join(files_html_sections), ''.join(all_files_html_list)
+
+ # Call the new function
+ tabs_html, tab_contents_html, all_files_html = render_category_files(structure, sorted_categories)
final_html = html_template.format(
tabs=tabs_html,
diff --git a/public/Mathematics/Fundamentals/HackerRank/Claude/Easy/Strange Grid Again/Strange_Grid_Again.html b/public/Mathematics/Fundamentals/HackerRank/Claude/Easy/Strange Grid Again/Strange_Grid_Again.html
new file mode 100644
index 00000000..62b2191d
--- /dev/null
+++ b/public/Mathematics/Fundamentals/HackerRank/Claude/Easy/Strange Grid Again/Strange_Grid_Again.html
@@ -0,0 +1,1684 @@
+
+
+
+
+
+
+
+
+ 概要
+
+ 無限に上方向へ伸びるグリッドが与えられる。底辺が第 1
+ 行、行は下から上へ増加、列は左から右へ増加する。行 r・列 c
+ に位置するセルの値を求める問題。
+
+
+ f(r, c) = 10 × ⌊(r−1)÷2⌋ + 2×(c−1) + (r−1) mod 2
+
+ サンプル:
+ r=6, c=3
+ →
+ 25
+
+
+
+
+
+ ステップ解説
+
+
+
+
+
+
+ ▶ Play
+ ← Prev
+ Next →
+ ↺ Reset
+
+
+
+
+
+
+
+ フローチャート
+
+
+
+
+
+
+
+
+
+
+
+
+ 入力: r, c
+
+
+
+
+ g = (r − 1) ÷ 2
+
+
+ グループ番号(0-indexed)
+
+
+
+
+ base = 10 × g
+
+
+ グループの先頭値
+
+
+
+
+ col_offset = 2 × (c − 1)
+
+
+ 列方向のオフセット
+
+
+
+
+ row_offset = (r − 1) mod 2
+
+
+ グループ内行位置(0 or 1)
+
+
+
+
+ 答え = base + col_offset + row_offset
+
+
+
+
+ フローの説明:
+ 1. 入力 (r, c) を受け取る
+ 2. グループ番号 g を整数除算で計算
+ 3. グループ先頭値 base = 10 × g を求める
+ 4. 列オフセット = 2×(c−1) を加算
+ 5. 行オフセット = (r−1) mod 2 を加算
+ 6. 3値の和を出力
+
+
+
+
+
+ Python 実装
+
+
コピー
+
from __future__ import annotations
+import os
+
+
+def strangeGrid (r : int , c : int ) -> int :
+ """
+ Strange Grid の (r, c) セルの値を返す。
+
+ 公式:
+ g = (r - 1) // 2 # 0-indexed グループ番号
+ base = 10 * g # グループ先頭値
+ col_offset = 2 * (c - 1) # 列方向増分
+ row_offset = (r - 1) % 2 # グループ内行位置 (0 or 1)
+
+ Time Complexity: O(1)
+ Space Complexity: O(1)
+ """
+ g: int = (r - 1 ) // 2
+ base: int = 10 * g
+ col_offset: int = 2 * (c - 1 )
+ row_offset: int = (r - 1 ) % 2
+ return base + col_offset + row_offset
+
+
+if __name__ == "__main__" :
+ fptr = open (os.environ["OUTPUT_PATH" ], "w" )
+ first_multiple_input = input ().rstrip ().split ()
+ r = int (first_multiple_input[0 ])
+ c = int (first_multiple_input[1 ])
+ result = strangeGrid (r, c)
+ fptr.write (str (result) + "\n" )
+ fptr.close ()
+
+
+
+
+
+ 計算量分析
+
+
+
+
+ 手法
+ 時間
+ 空間
+ 備考
+
+
+
+
+
+ 本実装(算術式)
+ 採用
+
+
+ O(1)
+
+
+ O(1)
+
+ 除算・剰余・加算のみ
+
+
+ 行単位スキャン
+
+ O(r)
+
+
+ O(1)
+
+ 行を順次計算
+
+
+ 全探索(仮想)
+
+ O(r×c)
+
+
+ O(r×c)
+
+ グリッド全体を生成
+
+
+
+
+
+
+
+ エッジケースと検証
+
+
+
+
+ r
+ c
+ 期待値
+ 計算値
+ 備考
+
+
+
+
+
+
+
+
+
+ FAQ
+
+
Q. なぜグループ先頭値が 10 刻みなのか?
+
+ A. 5列 × 2行 で 1 グループ当たり 10 個の整数を消費するため。一般化すると N
+ 列の場合 base = 2N×g となる。
+
+
+
+
Q. r=1 の下行が 0 から始まる根拠は?
+
+ A. 問題の定義によりグリッドの左下が値 0。row_offset=0
+ がグループ下行に対応するため自然に成立する。
+
+
+
+
Q. 列が 5 列を超えても公式は成立するか?
+
+ A. はい。col_offset = 2×(c−1) は c
+ が何であっても有効。グループ基底値はグリッドの実際の列数に依存しない。
+
+
+
+
Q. Python の // と % は負の入力で正しく動くか?
+
+ A. 制約 r≥1 より (r−1)≥0 が保証される。Python
+ の床除算・剰余は非負整数に対して数学的定義と一致するため問題なし。
+
+
+
+
+
+ HackerRank — Strange Grid | Python CPython 3.12.4 | O(1)
+
+
+
+
+
+
diff --git a/public/index.html b/public/index.html
index 371a7213..fafd47af 100644
--- a/public/index.html
+++ b/public/index.html
@@ -416,7 +416,7 @@