Dãy số

Small

Trong giờ tự học, Norman đã đưa ra một bài toán rất khó để thách thức Emma và những đứa trẻ khác. Cậu cho trước một dãy số nguyên gồm \(n\) phần tử và yêu cầu mọi người tìm cách đưa giá trị của tất cả các phần tử này về cùng bằng một số \(h\). Cậu cho phép mọi người thực hiện vô số bước, mỗi bước được chọn một đoạn con liên tiếp \([l,r]\) và tăng tất cả phần tử trong đoạn lên 1 đơn vị. Tuy nhiên, Norman đưa ra luật là đoạn con được chọn phải không được trùng vị trí đầu hay vị trí cuối với bất kì đoạn con nào được chọn trước đó. Nói cách khác, mỗi cặp đoạn con được chọn \([l_1,r_1],[l_2,r_2]\) phải thỏa mãn \(l_1 \neq l_2\)\(r_1 \neq r_2\). Emma rất nhanh trí và thông minh nên đã dễ dàng tìm được một lời giải thỏa mãn yêu cầu đề bài. Tưởng chừng bài toán của Norman chỉ dễ dàng xơi thế nhưng rồi Norman yêu cầu phải đưa ra tổng số lượng cách giải khác nhau. Emma đã cố gắng mò mẫn tính toán nhưng kết quả bài toán quá lớn, đành phải nhờ đến khả năng lập trình của các Coders thông thái thôi!

Input

  • Dòng đầu tiên gồm hai số nguyên dương \(n,h\) \((h \leq 2000)\).
  • Dòng thứ hai gồm \(n\) số nguyên \(a_1,a_2,\cdots,a_n (0 \leq a_i \leq 2000)\).

Output

  • Đưa ra một số nguyên duy nhất là phần dư kết quả bài toán khi chia cho \(10^9+7\).

Scoring

  • Subtask \(1\) (\(50\%\) số điểm): \(n \leq 10\).
  • Subtask \(2\) (\(50\%\) số điểm): \(n \leq 2000\).

Example

Test 1

Input
3 2
1 1 1            
Output
4
...More

Hình chữ nhật con

tanprodium

Cho một hình chữ nhật có \(n\) dòng \(m\) cột. Bé Bi muốn tìm tổng các phần tử một hình chữ nhật con của hình chữ nhật đó, hãy giúp bé Bi nhé!

Input

  • Dòng đầu tiên ghi \(n\)\(m\). \((1 \leq n, m \leq 1000)\)
  • \(n\) dòng tiếp theo, mỗi dòng gồm \(m\) số nguyên cách nhau bởi dấu cách \((|a[i,j]| \leq 1000)\)
  • Dòng cùng ghi tọa độ góc trái nên \((x1, y1)\) và phải dưới \((x2, y2)\) của một hình chữ nhật nhỏ hơn bên trong hình chữ nhật ban đầu \((1 \leq x1 \leq x2 \leq n, 1 \leq y1 \leq y2 \leq m)\)

Output

  • In ra kết quả mà bé Bi cần

Example

Test 1
Input
2 3
1 1 9
8 2 9
1 1 2 2 
Output
12

`

...More

Phân số nhỏ nhất (THTA Vòng sơ loại 2022)

Flower_On_Stone

Cho ba số tự nhiên \(A, B, C\). Từ ba số đó, hãy tạo ra một phân số nhỏ nhất có thể. In ra tổng của tử số và mẫu số của phân số nhỏ nhất đã được tối giản.

Input

  • Ba tự nhiên \(A, B, C\) \((0 < A, B, C \leq 1000)\), mỗi số trên một dòng.

Output

  • In ra một số duy nhất là kết quả của bài toán.

Example

Test 1

Input
3
2
4 
Output
3
Note

Những phân số có thể tạo ra: \(\dfrac{3}{2}; \dfrac{3}{4}; \dfrac{2}{3}; \dfrac{2}{4}; \dfrac{4}{3}; \dfrac{4}{2}\)

Phân số bé nhất là \(\dfrac{2}{4} = \dfrac{1}{2}\)

Vậy kết quả là \(1 + 2 = 3\)

...More

Số lần xuất hiện 1

admin

Cho một dãy gồm \(n\) số nguyên dương \(A_1,A_2,\ldots,A_n\).

Yêu cầu: Hãy in ra tất cả các số trong mảng \(A\) cùng với số lần xuất hiện của chúng.

Input

  • Dòng đầu chứa số \(n\) (\(n\leq 10^5\)).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(A_1,A_2,\ldots,A_n\) (\(A_i\leq 10^6\)).

Output

  • Gồm \(n\) dòng, mỗi dòng ghi số hạng thứ \(A_i\) và số lần xuất hiện của chúng.

Example

Test 1

Input
9
2 3 1 2 3 4 5 4 3
Output
2 2
3 3
1 1
2 2
3 3
4 2
5 1
4 2
3 3
...More