diff --git a/solution/2900-2999/2903.Find Indices With Index and Value Difference I/README.md b/solution/2900-2999/2903.Find Indices With Index and Value Difference I/README.md
new file mode 100644
index 0000000000000..3d7d80f99f6d7
--- /dev/null
+++ b/solution/2900-2999/2903.Find Indices With Index and Value Difference I/README.md
@@ -0,0 +1,106 @@
+# [2903. 找出满足差值条件的下标 I](https://leetcode.cn/problems/find-indices-with-index-and-value-difference-i)
+
+[English Version](/solution/2900-2999/2903.Find%20Indices%20With%20Index%20and%20Value%20Difference%20I/README_EN.md)
+
+## 题目描述
+
+
+
+
给你一个下标从 0 开始、长度为 n
的整数数组 nums
,以及整数 indexDifference
和整数 valueDifference
。
+
+你的任务是从范围 [0, n - 1]
内找出 2 个满足下述所有条件的下标 i
和 j
:
+
+
+ abs(i - j) >= indexDifference
且
+ abs(nums[i] - nums[j]) >= valueDifference
+
+
+返回整数数组 answer
。如果存在满足题目要求的两个下标,则 answer = [i, j]
;否则,answer = [-1, -1]
。如果存在多组可供选择的下标对,只需要返回其中任意一组即可。
+
+注意:i
和 j
可能 相等 。
+
+
+
+示例 1:
+
+
+输入:nums = [5,1,4,1], indexDifference = 2, valueDifference = 4
+输出:[0,3]
+解释:在示例中,可以选择 i = 0 和 j = 3 。
+abs(0 - 3) >= 2 且 abs(nums[0] - nums[3]) >= 4 。
+因此,[0,3] 是一个符合题目要求的答案。
+[3,0] 也是符合题目要求的答案。
+
+
+示例 2:
+
+
+输入:nums = [2,1], indexDifference = 0, valueDifference = 0
+输出:[0,0]
+解释:
+在示例中,可以选择 i = 0 和 j = 0 。
+abs(0 - 0) >= 0 且 abs(nums[0] - nums[0]) >= 0 。
+因此,[0,0] 是一个符合题目要求的答案。
+[0,1]、[1,0] 和 [1,1] 也是符合题目要求的答案。
+
+
+示例 3:
+
+
+输入:nums = [1,2,3], indexDifference = 2, valueDifference = 4
+输出:[-1,-1]
+解释:在示例中,可以证明无法找出 2 个满足所有条件的下标。
+因此,返回 [-1,-1] 。
+
+
+
+提示:
+
+
+ 1 <= n == nums.length <= 100
+ 0 <= nums[i] <= 50
+ 0 <= indexDifference <= 100
+ 0 <= valueDifference <= 50
+
+
+## 解法
+
+
+
+
+
+### **Python3**
+
+
+
+```python
+
+```
+
+### **Java**
+
+
+
+```java
+
+```
+
+### **C++**
+
+```cpp
+
+```
+
+### **Go**
+
+```go
+
+```
+
+### **...**
+
+```
+
+```
+
+
diff --git a/solution/2900-2999/2903.Find Indices With Index and Value Difference I/README_EN.md b/solution/2900-2999/2903.Find Indices With Index and Value Difference I/README_EN.md
new file mode 100644
index 0000000000000..1c7ea4c05530e
--- /dev/null
+++ b/solution/2900-2999/2903.Find Indices With Index and Value Difference I/README_EN.md
@@ -0,0 +1,95 @@
+# [2903. Find Indices With Index and Value Difference I](https://leetcode.com/problems/find-indices-with-index-and-value-difference-i)
+
+[中文文档](/solution/2900-2999/2903.Find%20Indices%20With%20Index%20and%20Value%20Difference%20I/README.md)
+
+## Description
+
+You are given a 0-indexed integer array nums
having length n
, an integer indexDifference
, and an integer valueDifference
.
+
+Your task is to find two indices i
and j
, both in the range [0, n - 1]
, that satisfy the following conditions:
+
+
+ abs(i - j) >= indexDifference
, and
+ abs(nums[i] - nums[j]) >= valueDifference
+
+
+Return an integer array answer
, where answer = [i, j]
if there are two such indices, and answer = [-1, -1]
otherwise. If there are multiple choices for the two indices, return any of them.
+
+Note: i
and j
may be equal.
+
+
+Example 1:
+
+
+Input: nums = [5,1,4,1], indexDifference = 2, valueDifference = 4
+Output: [0,3]
+Explanation: In this example, i = 0 and j = 3 can be selected.
+abs(0 - 3) >= 2 and abs(nums[0] - nums[3]) >= 4.
+Hence, a valid answer is [0,3].
+[3,0] is also a valid answer.
+
+
+Example 2:
+
+
+Input: nums = [2,1], indexDifference = 0, valueDifference = 0
+Output: [0,0]
+Explanation: In this example, i = 0 and j = 0 can be selected.
+abs(0 - 0) >= 0 and abs(nums[0] - nums[0]) >= 0.
+Hence, a valid answer is [0,0].
+Other valid answers are [0,1], [1,0], and [1,1].
+
+
+Example 3:
+
+
+Input: nums = [1,2,3], indexDifference = 2, valueDifference = 4
+Output: [-1,-1]
+Explanation: In this example, it can be shown that it is impossible to find two indices that satisfy both conditions.
+Hence, [-1,-1] is returned.
+
+
+Constraints:
+
+
+ 1 <= n == nums.length <= 100
+ 0 <= nums[i] <= 50
+ 0 <= indexDifference <= 100
+ 0 <= valueDifference <= 50
+
+
+## Solutions
+
+
+
+### **Python3**
+
+```python
+
+```
+
+### **Java**
+
+```java
+
+```
+
+### **C++**
+
+```cpp
+
+```
+
+### **Go**
+
+```go
+
+```
+
+### **...**
+
+```
+
+```
+
+
diff --git a/solution/2900-2999/2904.Shortest and Lexicographically Smallest Beautiful String/README.md b/solution/2900-2999/2904.Shortest and Lexicographically Smallest Beautiful String/README.md
new file mode 100644
index 0000000000000..9949156ec0421
--- /dev/null
+++ b/solution/2900-2999/2904.Shortest and Lexicographically Smallest Beautiful String/README.md
@@ -0,0 +1,112 @@
+# [2904. 最短且字典序最小的美丽子字符串](https://leetcode.cn/problems/shortest-and-lexicographically-smallest-beautiful-string)
+
+[English Version](/solution/2900-2999/2904.Shortest%20and%20Lexicographically%20Smallest%20Beautiful%20String/README_EN.md)
+
+## 题目描述
+
+
+
+给你一个二进制字符串 s
和一个正整数 k
。
+
+如果 s
的某个子字符串中 1
的个数恰好等于 k
,则称这个子字符串是一个 美丽子字符串 。
+
+令 len
等于 最短 美丽子字符串的长度。
+
+返回长度等于 len
且字典序 最小 的美丽子字符串。如果 s
中不含美丽子字符串,则返回一个 空 字符串。
+
+对于相同长度的两个字符串 a
和 b
,如果在 a
和 b
出现不同的第一个位置上,a
中该位置上的字符严格大于 b
中的对应字符,则认为字符串 a
字典序 大于 字符串 b
。
+
+
+ - 例如,
"abcd"
的字典序大于 "abcc"
,因为两个字符串出现不同的第一个位置对应第四个字符,而 d
大于 c
。
+
+
+
+
+示例 1:
+
+
+输入:s = "100011001", k = 3
+输出:"11001"
+解释:示例中共有 7 个美丽子字符串:
+1. 子字符串 "100011001" 。
+2. 子字符串 "100011001" 。
+3. 子字符串 "100011001" 。
+4. 子字符串 "100011001" 。
+5. 子字符串 "100011001" 。
+6. 子字符串 "100011001" 。
+7. 子字符串 "100011001" 。
+最短美丽子字符串的长度是 5 。
+长度为 5 且字典序最小的美丽子字符串是子字符串 "11001" 。
+
+
+示例 2:
+
+
+输入:s = "1011", k = 2
+输出:"11"
+解释:示例中共有 3 个美丽子字符串:
+1. 子字符串 "1011" 。
+2. 子字符串 "1011" 。
+3. 子字符串 "1011" 。
+最短美丽子字符串的长度是 2 。
+长度为 2 且字典序最小的美丽子字符串是子字符串 "11" 。
+
+
+示例 3:
+
+
+输入:s = "000", k = 1
+输出:""
+解释:示例中不存在美丽子字符串。
+
+
+
+
+提示:
+
+
+ 1 <= s.length <= 100
+ 1 <= k <= s.length
+
+
+## 解法
+
+
+
+
+
+### **Python3**
+
+
+
+```python
+
+```
+
+### **Java**
+
+
+
+```java
+
+```
+
+### **C++**
+
+```cpp
+
+```
+
+### **Go**
+
+```go
+
+```
+
+### **...**
+
+```
+
+```
+
+
diff --git a/solution/2900-2999/2904.Shortest and Lexicographically Smallest Beautiful String/README_EN.md b/solution/2900-2999/2904.Shortest and Lexicographically Smallest Beautiful String/README_EN.md
new file mode 100644
index 0000000000000..434d63cfc411d
--- /dev/null
+++ b/solution/2900-2999/2904.Shortest and Lexicographically Smallest Beautiful String/README_EN.md
@@ -0,0 +1,102 @@
+# [2904. Shortest and Lexicographically Smallest Beautiful String](https://leetcode.com/problems/shortest-and-lexicographically-smallest-beautiful-string)
+
+[中文文档](/solution/2900-2999/2904.Shortest%20and%20Lexicographically%20Smallest%20Beautiful%20String/README.md)
+
+## Description
+
+You are given a binary string s
and a positive integer k
.
+
+A substring of s
is beautiful if the number of 1
's in it is exactly k
.
+
+Let len
be the length of the shortest beautiful substring.
+
+Return the lexicographically smallest beautiful substring of string s
with length equal to len
. If s
doesn't contain a beautiful substring, return an empty string.
+
+A string a
is lexicographically larger than a string b
(of the same length) if in the first position where a
and b
differ, a
has a character strictly larger than the corresponding character in b
.
+
+
+ - For example,
"abcd"
is lexicographically larger than "abcc"
because the first position they differ is at the fourth character, and d
is greater than c
.
+
+
+
+Example 1:
+
+
+Input: s = "100011001", k = 3
+Output: "11001"
+Explanation: There are 7 beautiful substrings in this example:
+1. The substring "100011001".
+2. The substring "100011001".
+3. The substring "100011001".
+4. The substring "100011001".
+5. The substring "100011001".
+6. The substring "100011001".
+7. The substring "100011001".
+The length of the shortest beautiful substring is 5.
+The lexicographically smallest beautiful substring with length 5 is the substring "11001".
+
+
+Example 2:
+
+
+Input: s = "1011", k = 2
+Output: "11"
+Explanation: There are 3 beautiful substrings in this example:
+1. The substring "1011".
+2. The substring "1011".
+3. The substring "1011".
+The length of the shortest beautiful substring is 2.
+The lexicographically smallest beautiful substring with length 2 is the substring "11".
+
+
+Example 3:
+
+
+Input: s = "000", k = 1
+Output: ""
+Explanation: There are no beautiful substrings in this example.
+
+
+
+Constraints:
+
+
+ 1 <= s.length <= 100
+ 1 <= k <= s.length
+
+
+## Solutions
+
+
+
+### **Python3**
+
+```python
+
+```
+
+### **Java**
+
+```java
+
+```
+
+### **C++**
+
+```cpp
+
+```
+
+### **Go**
+
+```go
+
+```
+
+### **...**
+
+```
+
+```
+
+
diff --git a/solution/2900-2999/2905.Find Indices With Index and Value Difference II/README.md b/solution/2900-2999/2905.Find Indices With Index and Value Difference II/README.md
new file mode 100644
index 0000000000000..a9ab76f256200
--- /dev/null
+++ b/solution/2900-2999/2905.Find Indices With Index and Value Difference II/README.md
@@ -0,0 +1,106 @@
+# [2905. 找出满足差值条件的下标 II](https://leetcode.cn/problems/find-indices-with-index-and-value-difference-ii)
+
+[English Version](/solution/2900-2999/2905.Find%20Indices%20With%20Index%20and%20Value%20Difference%20II/README_EN.md)
+
+## 题目描述
+
+
+
+给你一个下标从 0 开始、长度为 n
的整数数组 nums
,以及整数 indexDifference
和整数 valueDifference
。
+
+你的任务是从范围 [0, n - 1]
内找出 2 个满足下述所有条件的下标 i
和 j
:
+
+
+ abs(i - j) >= indexDifference
且
+ abs(nums[i] - nums[j]) >= valueDifference
+
+
+返回整数数组 answer
。如果存在满足题目要求的两个下标,则 answer = [i, j]
;否则,answer = [-1, -1]
。如果存在多组可供选择的下标对,只需要返回其中任意一组即可。
+
+注意:i
和 j
可能 相等 。
+
+
+
+示例 1:
+
+
+输入:nums = [5,1,4,1], indexDifference = 2, valueDifference = 4
+输出:[0,3]
+解释:在示例中,可以选择 i = 0 和 j = 3 。
+abs(0 - 3) >= 2 且 abs(nums[0] - nums[3]) >= 4 。
+因此,[0,3] 是一个符合题目要求的答案。
+[3,0] 也是符合题目要求的答案。
+
+
+示例 2:
+
+
+输入:nums = [2,1], indexDifference = 0, valueDifference = 0
+输出:[0,0]
+解释:
+在示例中,可以选择 i = 0 和 j = 0 。
+abs(0 - 0) >= 0 且 abs(nums[0] - nums[0]) >= 0 。
+因此,[0,0] 是一个符合题目要求的答案。
+[0,1]、[1,0] 和 [1,1] 也是符合题目要求的答案。
+
+
+示例 3:
+
+
+输入:nums = [1,2,3], indexDifference = 2, valueDifference = 4
+输出:[-1,-1]
+解释:在示例中,可以证明无法找出 2 个满足所有条件的下标。
+因此,返回 [-1,-1] 。
+
+
+
+提示:
+
+
+ 1 <= n == nums.length <= 105
+ 0 <= nums[i] <= 109
+ 0 <= indexDifference <= 105
+ 0 <= valueDifference <= 109
+
+
+## 解法
+
+
+
+
+
+### **Python3**
+
+
+
+```python
+
+```
+
+### **Java**
+
+
+
+```java
+
+```
+
+### **C++**
+
+```cpp
+
+```
+
+### **Go**
+
+```go
+
+```
+
+### **...**
+
+```
+
+```
+
+
diff --git a/solution/2900-2999/2905.Find Indices With Index and Value Difference II/README_EN.md b/solution/2900-2999/2905.Find Indices With Index and Value Difference II/README_EN.md
new file mode 100644
index 0000000000000..904b538ec354c
--- /dev/null
+++ b/solution/2900-2999/2905.Find Indices With Index and Value Difference II/README_EN.md
@@ -0,0 +1,95 @@
+# [2905. Find Indices With Index and Value Difference II](https://leetcode.com/problems/find-indices-with-index-and-value-difference-ii)
+
+[中文文档](/solution/2900-2999/2905.Find%20Indices%20With%20Index%20and%20Value%20Difference%20II/README.md)
+
+## Description
+
+You are given a 0-indexed integer array nums
having length n
, an integer indexDifference
, and an integer valueDifference
.
+
+Your task is to find two indices i
and j
, both in the range [0, n - 1]
, that satisfy the following conditions:
+
+
+ abs(i - j) >= indexDifference
, and
+ abs(nums[i] - nums[j]) >= valueDifference
+
+
+Return an integer array answer
, where answer = [i, j]
if there are two such indices, and answer = [-1, -1]
otherwise. If there are multiple choices for the two indices, return any of them.
+
+Note: i
and j
may be equal.
+
+
+Example 1:
+
+
+Input: nums = [5,1,4,1], indexDifference = 2, valueDifference = 4
+Output: [0,3]
+Explanation: In this example, i = 0 and j = 3 can be selected.
+abs(0 - 3) >= 2 and abs(nums[0] - nums[3]) >= 4.
+Hence, a valid answer is [0,3].
+[3,0] is also a valid answer.
+
+
+Example 2:
+
+
+Input: nums = [2,1], indexDifference = 0, valueDifference = 0
+Output: [0,0]
+Explanation: In this example, i = 0 and j = 0 can be selected.
+abs(0 - 0) >= 0 and abs(nums[0] - nums[0]) >= 0.
+Hence, a valid answer is [0,0].
+Other valid answers are [0,1], [1,0], and [1,1].
+
+
+Example 3:
+
+
+Input: nums = [1,2,3], indexDifference = 2, valueDifference = 4
+Output: [-1,-1]
+Explanation: In this example, it can be shown that it is impossible to find two indices that satisfy both conditions.
+Hence, [-1,-1] is returned.
+
+
+Constraints:
+
+
+ 1 <= n == nums.length <= 105
+ 0 <= nums[i] <= 109
+ 0 <= indexDifference <= 105
+ 0 <= valueDifference <= 109
+
+
+## Solutions
+
+
+
+### **Python3**
+
+```python
+
+```
+
+### **Java**
+
+```java
+
+```
+
+### **C++**
+
+```cpp
+
+```
+
+### **Go**
+
+```go
+
+```
+
+### **...**
+
+```
+
+```
+
+
diff --git a/solution/2900-2999/2906.Construct Product Matrix/README.md b/solution/2900-2999/2906.Construct Product Matrix/README.md
new file mode 100644
index 0000000000000..21c7a58ce0c42
--- /dev/null
+++ b/solution/2900-2999/2906.Construct Product Matrix/README.md
@@ -0,0 +1,91 @@
+# [2906. 构造乘积矩阵](https://leetcode.cn/problems/construct-product-matrix)
+
+[English Version](/solution/2900-2999/2906.Construct%20Product%20Matrix/README_EN.md)
+
+## 题目描述
+
+
+
+给你一个下标从 0 开始、大小为 n * m
的二维整数矩阵 grid
,定义一个下标从 0 开始、大小为 n * m
的的二维矩阵 p
。如果满足以下条件,则称 p
为 grid
的 乘积矩阵 :
+
+
+ - 对于每个元素
p[i][j]
,它的值等于除了 grid[i][j]
外所有元素的乘积。乘积对 12345
取余数。
+
+
+返回 grid
的乘积矩阵。
+
+
+
+示例 1:
+
+
+输入:grid = [[1,2],[3,4]]
+输出:[[24,12],[8,6]]
+解释:p[0][0] = grid[0][1] * grid[1][0] * grid[1][1] = 2 * 3 * 4 = 24
+p[0][1] = grid[0][0] * grid[1][0] * grid[1][1] = 1 * 3 * 4 = 12
+p[1][0] = grid[0][0] * grid[0][1] * grid[1][1] = 1 * 2 * 4 = 8
+p[1][1] = grid[0][0] * grid[0][1] * grid[1][0] = 1 * 2 * 3 = 6
+所以答案是 [[24,12],[8,6]] 。
+
+示例 2:
+
+
+输入:grid = [[12345],[2],[1]]
+输出:[[2],[0],[0]]
+解释:p[0][0] = grid[0][1] * grid[0][2] = 2 * 1 = 2
+p[0][1] = grid[0][0] * grid[0][2] = 12345 * 1 = 12345. 12345 % 12345 = 0 ,所以 p[0][1] = 0
+p[0][2] = grid[0][0] * grid[0][1] = 12345 * 2 = 24690. 24690 % 12345 = 0 ,所以 p[0][2] = 0
+所以答案是 [[2],[0],[0]] 。
+
+
+
+提示:
+
+
+ 1 <= n == grid.length <= 105
+ 1 <= m == grid[i].length <= 105
+ 2 <= n * m <= 105
+ 1 <= grid[i][j] <= 109
+
+
+## 解法
+
+
+
+
+
+### **Python3**
+
+
+
+```python
+
+```
+
+### **Java**
+
+
+
+```java
+
+```
+
+### **C++**
+
+```cpp
+
+```
+
+### **Go**
+
+```go
+
+```
+
+### **...**
+
+```
+
+```
+
+
diff --git a/solution/2900-2999/2906.Construct Product Matrix/README_EN.md b/solution/2900-2999/2906.Construct Product Matrix/README_EN.md
new file mode 100644
index 0000000000000..0872f2fd91961
--- /dev/null
+++ b/solution/2900-2999/2906.Construct Product Matrix/README_EN.md
@@ -0,0 +1,81 @@
+# [2906. Construct Product Matrix](https://leetcode.com/problems/construct-product-matrix)
+
+[中文文档](/solution/2900-2999/2906.Construct%20Product%20Matrix/README.md)
+
+## Description
+
+Given a 0-indexed 2D integer matrix grid
of size n * m
, we define a 0-indexed 2D matrix p
of size n * m
as the product matrix of grid
if the following condition is met:
+
+
+ - Each element
p[i][j]
is calculated as the product of all elements in grid
except for the element grid[i][j]
. This product is then taken modulo 12345
.
+
+
+Return the product matrix of grid
.
+
+
+Example 1:
+
+
+Input: grid = [[1,2],[3,4]]
+Output: [[24,12],[8,6]]
+Explanation: p[0][0] = grid[0][1] * grid[1][0] * grid[1][1] = 2 * 3 * 4 = 24
+p[0][1] = grid[0][0] * grid[1][0] * grid[1][1] = 1 * 3 * 4 = 12
+p[1][0] = grid[0][0] * grid[0][1] * grid[1][1] = 1 * 2 * 4 = 8
+p[1][1] = grid[0][0] * grid[0][1] * grid[1][0] = 1 * 2 * 3 = 6
+So the answer is [[24,12],[8,6]].
+
+Example 2:
+
+
+Input: grid = [[12345],[2],[1]]
+Output: [[2],[0],[0]]
+Explanation: p[0][0] = grid[0][1] * grid[0][2] = 2 * 1 = 2.
+p[0][1] = grid[0][0] * grid[0][2] = 12345 * 1 = 12345. 12345 % 12345 = 0. So p[0][1] = 0.
+p[0][2] = grid[0][0] * grid[0][1] = 12345 * 2 = 24690. 24690 % 12345 = 0. So p[0][2] = 0.
+So the answer is [[2],[0],[0]].
+
+
+Constraints:
+
+
+ 1 <= n == grid.length <= 105
+ 1 <= m == grid[i].length <= 105
+ 2 <= n * m <= 105
+ 1 <= grid[i][j] <= 109
+
+
+## Solutions
+
+
+
+### **Python3**
+
+```python
+
+```
+
+### **Java**
+
+```java
+
+```
+
+### **C++**
+
+```cpp
+
+```
+
+### **Go**
+
+```go
+
+```
+
+### **...**
+
+```
+
+```
+
+
diff --git a/solution/CONTEST_README.md b/solution/CONTEST_README.md
index e35fe9d4f2580..c11bfdbf6b74e 100644
--- a/solution/CONTEST_README.md
+++ b/solution/CONTEST_README.md
@@ -22,6 +22,13 @@
## 往期竞赛
+#### 第 367 场周赛(2023-10-15 10:30, 90 分钟) 参赛人数 4317
+
+- [2903. 找出满足差值条件的下标 I](/solution/2900-2999/2903.Find%20Indices%20With%20Index%20and%20Value%20Difference%20I/README.md)
+- [2904. 最短且字典序最小的美丽子字符串](/solution/2900-2999/2904.Shortest%20and%20Lexicographically%20Smallest%20Beautiful%20String/README.md)
+- [2905. 找出满足差值条件的下标 II](/solution/2900-2999/2905.Find%20Indices%20With%20Index%20and%20Value%20Difference%20II/README.md)
+- [2906. 构造乘积矩阵](/solution/2900-2999/2906.Construct%20Product%20Matrix/README.md)
+
#### 第 115 场双周赛(2023-10-14 22:30, 90 分钟) 参赛人数 2809
- [2899. 上一个遍历的整数](/solution/2800-2899/2899.Last%20Visited%20Integers/README.md)
diff --git a/solution/CONTEST_README_EN.md b/solution/CONTEST_README_EN.md
index 172a171425621..30dab81067d98 100644
--- a/solution/CONTEST_README_EN.md
+++ b/solution/CONTEST_README_EN.md
@@ -25,6 +25,13 @@ Get your rating changes right after the completion of LeetCode contests, https:/
## Past Contests
+#### Weekly Contest 367
+
+- [2903. Find Indices With Index and Value Difference I](/solution/2900-2999/2903.Find%20Indices%20With%20Index%20and%20Value%20Difference%20I/README_EN.md)
+- [2904. Shortest and Lexicographically Smallest Beautiful String](/solution/2900-2999/2904.Shortest%20and%20Lexicographically%20Smallest%20Beautiful%20String/README_EN.md)
+- [2905. Find Indices With Index and Value Difference II](/solution/2900-2999/2905.Find%20Indices%20With%20Index%20and%20Value%20Difference%20II/README_EN.md)
+- [2906. Construct Product Matrix](/solution/2900-2999/2906.Construct%20Product%20Matrix/README_EN.md)
+
#### Biweekly Contest 115
- [2899. Last Visited Integers](/solution/2800-2899/2899.Last%20Visited%20Integers/README_EN.md)
diff --git a/solution/README.md b/solution/README.md
index 77ef0975016fd..4fa9499bfff6f 100644
--- a/solution/README.md
+++ b/solution/README.md
@@ -2913,6 +2913,10 @@
| 2900 | [最长相邻不相等子序列 I](/solution/2900-2999/2900.Longest%20Unequal%20Adjacent%20Groups%20Subsequence%20I/README.md) | | 中等 | 第 115 场双周赛 |
| 2901 | [最长相邻不相等子序列 II](/solution/2900-2999/2901.Longest%20Unequal%20Adjacent%20Groups%20Subsequence%20II/README.md) | | 中等 | 第 115 场双周赛 |
| 2902 | [和带限制的子多重集合的数目](/solution/2900-2999/2902.Count%20of%20Sub-Multisets%20With%20Bounded%20Sum/README.md) | | 困难 | 第 115 场双周赛 |
+| 2903 | [找出满足差值条件的下标 I](/solution/2900-2999/2903.Find%20Indices%20With%20Index%20and%20Value%20Difference%20I/README.md) | | 简单 | 第 367 场周赛 |
+| 2904 | [最短且字典序最小的美丽子字符串](/solution/2900-2999/2904.Shortest%20and%20Lexicographically%20Smallest%20Beautiful%20String/README.md) | | 中等 | 第 367 场周赛 |
+| 2905 | [找出满足差值条件的下标 II](/solution/2900-2999/2905.Find%20Indices%20With%20Index%20and%20Value%20Difference%20II/README.md) | | 中等 | 第 367 场周赛 |
+| 2906 | [构造乘积矩阵](/solution/2900-2999/2906.Construct%20Product%20Matrix/README.md) | | 中等 | 第 367 场周赛 |
## 版权
diff --git a/solution/README_EN.md b/solution/README_EN.md
index df6e6a867bb29..3bed8edb1085c 100644
--- a/solution/README_EN.md
+++ b/solution/README_EN.md
@@ -2911,6 +2911,10 @@ Press Control + F(or Command + F on
| 2900 | [Longest Unequal Adjacent Groups Subsequence I](/solution/2900-2999/2900.Longest%20Unequal%20Adjacent%20Groups%20Subsequence%20I/README_EN.md) | | Medium | Biweekly Contest 115 |
| 2901 | [Longest Unequal Adjacent Groups Subsequence II](/solution/2900-2999/2901.Longest%20Unequal%20Adjacent%20Groups%20Subsequence%20II/README_EN.md) | | Medium | Biweekly Contest 115 |
| 2902 | [Count of Sub-Multisets With Bounded Sum](/solution/2900-2999/2902.Count%20of%20Sub-Multisets%20With%20Bounded%20Sum/README_EN.md) | | Hard | Biweekly Contest 115 |
+| 2903 | [Find Indices With Index and Value Difference I](/solution/2900-2999/2903.Find%20Indices%20With%20Index%20and%20Value%20Difference%20I/README_EN.md) | | Easy | Weekly Contest 367 |
+| 2904 | [Shortest and Lexicographically Smallest Beautiful String](/solution/2900-2999/2904.Shortest%20and%20Lexicographically%20Smallest%20Beautiful%20String/README_EN.md) | | Medium | Weekly Contest 367 |
+| 2905 | [Find Indices With Index and Value Difference II](/solution/2900-2999/2905.Find%20Indices%20With%20Index%20and%20Value%20Difference%20II/README_EN.md) | | Medium | Weekly Contest 367 |
+| 2906 | [Construct Product Matrix](/solution/2900-2999/2906.Construct%20Product%20Matrix/README_EN.md) | | Medium | Weekly Contest 367 |
## Copyright
diff --git a/solution/summary.md b/solution/summary.md
index 21731f0a054d7..7f47edeb7d41e 100644
--- a/solution/summary.md
+++ b/solution/summary.md
@@ -2960,3 +2960,7 @@
- [2900.最长相邻不相等子序列 I](/solution/2900-2999/2900.Longest%20Unequal%20Adjacent%20Groups%20Subsequence%20I/README.md)
- [2901.最长相邻不相等子序列 II](/solution/2900-2999/2901.Longest%20Unequal%20Adjacent%20Groups%20Subsequence%20II/README.md)
- [2902.和带限制的子多重集合的数目](/solution/2900-2999/2902.Count%20of%20Sub-Multisets%20With%20Bounded%20Sum/README.md)
+ - [2903.找出满足差值条件的下标 I](/solution/2900-2999/2903.Find%20Indices%20With%20Index%20and%20Value%20Difference%20I/README.md)
+ - [2904.最短且字典序最小的美丽子字符串](/solution/2900-2999/2904.Shortest%20and%20Lexicographically%20Smallest%20Beautiful%20String/README.md)
+ - [2905.找出满足差值条件的下标 II](/solution/2900-2999/2905.Find%20Indices%20With%20Index%20and%20Value%20Difference%20II/README.md)
+ - [2906.构造乘积矩阵](/solution/2900-2999/2906.Construct%20Product%20Matrix/README.md)
diff --git a/solution/summary_en.md b/solution/summary_en.md
index e4be97bd46470..715026b8d8ca2 100644
--- a/solution/summary_en.md
+++ b/solution/summary_en.md
@@ -2960,3 +2960,7 @@
- [2900.Longest Unequal Adjacent Groups Subsequence I](/solution/2900-2999/2900.Longest%20Unequal%20Adjacent%20Groups%20Subsequence%20I/README_EN.md)
- [2901.Longest Unequal Adjacent Groups Subsequence II](/solution/2900-2999/2901.Longest%20Unequal%20Adjacent%20Groups%20Subsequence%20II/README_EN.md)
- [2902.Count of Sub-Multisets With Bounded Sum](/solution/2900-2999/2902.Count%20of%20Sub-Multisets%20With%20Bounded%20Sum/README_EN.md)
+ - [2903.Find Indices With Index and Value Difference I](/solution/2900-2999/2903.Find%20Indices%20With%20Index%20and%20Value%20Difference%20I/README_EN.md)
+ - [2904.Shortest and Lexicographically Smallest Beautiful String](/solution/2900-2999/2904.Shortest%20and%20Lexicographically%20Smallest%20Beautiful%20String/README_EN.md)
+ - [2905.Find Indices With Index and Value Difference II](/solution/2900-2999/2905.Find%20Indices%20With%20Index%20and%20Value%20Difference%20II/README_EN.md)
+ - [2906.Construct Product Matrix](/solution/2900-2999/2906.Construct%20Product%20Matrix/README_EN.md)