Orange Ami Vol.2 Div 2

Bộ đề bài

1. Trị tuyệt đối

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Chúng ta có hai số nguyên \(A\), \(B\). PhanDinhKhoi muốn biết rằng có tồn tại \(C\) là một số nguyên hay không sao cho

\(\lvert C - A \rvert = \lvert B - C \rvert\)

Tuy nhiên, đến giờ anh ấy vẫn chưa biết giải quyết vấn đề này. Bạn hãy giúp anh ấy nhé!!

Input

  • Hai số nguyên \(A, B\ (0 \leq A, B \leq 10^{14})\)

Output

  • Xuất ra màn hình "YES" nếu tồn tại \(C\) thỏa mãn điều kiện trên, ngược lại hãy xuất ra màn hình "NO"

Example

Test 1

Input
6 10
Output
YES

2. Tìm X

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

PhanDinhKhoi cho bạn số nguyên \(Y\), bạn hãy tìm giúp anh ấy một số nguyên \(X\) không âm nhỏ nhất sao cho thỏa mãn điều kiện sao đây

\(10^X > Y\)

Input

  • Dòng đầu tiên chứa số nguyên dương \(N (1 \leq N \leq 100)\).

  • \(N\) dòng tiếp theo, mỗi dòng chứa một số nguyên \(Y\) có giá trị trong khoảng từ \(0\) đến \(10^{100}\)

Output

  • \(N\) dòng, giá trị của \(X\) là số nguyên không âm nhỏ nhất có thể sao cho \(10^X>Y\).

Example

Test 1

Input
3
5926
5
35897
Output
4
1
5

3. Hệ Phương Trình

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

\(ax + cy = e\)

\(bx + dy = f\)

Cho \(a, b, c, d, e, f\). Hãy giải phương trình \(2\) ẩn trên, tuy nhiên PhanDinhKhoi cho rằng những phương trình là đẹp nếu những phương trình \(2\) ẩn đó có duy nhất \(1\) nghiệm nguyên dương. Vì vậy bạn chỉ cần giải những phương trình thế này.

Input

  • Dòng đầu tiên chứa số nguyên dương \(N (1 \leq N \leq 100)\).
  • \(N\) dòng tiếp theo, mỗi dòng chứa \(6\) số nguyên \(a, b, c, d, e, f\) có giá trị trong khoảng từ \(1\) đến \(10^{4}\).

Output

  • \(N\) dòng, mỗi dòng bạn hãy đưa ra giá trị \(x\)\(y\) nếu phương trình đó đẹp, ngược lại xuất ra màn hình dấu '?'

Chú ý: Phương trình nhiều nghiệm nhưng có thể chỉ có 1 nghiệm trong đó cả \(x\)\(y\) đều là số nguyên dương.

Example

Test 1

Input
2
2 1 4 1 16 5
3 2 5 1 9 4
Output
2 3
?

4. Trị Tuyệt Đối Nhỏ Nhất

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

ami có một dãy số nguyên dương \(A\) gồm \(n\) phần tử và một số nguyên dương \(k\).

Các bạn có thể thực hiện thao tác sau không quá k lần, mỗi lần, các bạn có thể chọn một phần tử trong \(A\) và giảm giá trị của nó đi 1.

Hãy tìm cách thực hiện thao tác trên một cách tối ưu để trị tuyệt đối của tích \(A\) là nhỏ nhất. Nói cách khác, các bạn cần cực tiểu giá trị \(S\) sau:

\(S\) = |\(A_1 * A_2 * ... * A_n\)|

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(n\)\(k\) lần lượt là số phần tử của dãy \(A\) và số lần thực hiện thao tác tối đa.

  • Dòng tiếp theo chứa \(n\) số nguyên dương \(A_i\) biểu thị một phần tử của dãy \(A\).

Output

  • Hãy in ra giá trị \(S\) sau khi chia dư cho \(10^9+7\).

Scoring

  • Trong toàn bộ dữ liệu có \(1 \leq a_i \leq 10^9\).

  • \(50\)% điểm tương ứng với \(1 \leq n, m \leq 10\).

  • \(50\)% điểm tương ứng với \(1 \leq n, m \leq 2*10^5\).

Example

Test 1

Input
3 3
1 2 3
Output
0
Note

Ở ví dụ 1, ta có thể áp dụng cả 3 thao tác lên số 3 để nhận được dãy [1 2 0]. Tích 1 * 2 * 0 = 0.

Test 2

Input
2 1
2 2
Output
2
Note

Ở ví dụ 2, ta có thể áp dụng thao tác lên một trong 2 số. Đáp án sẽ luôn là 2.

5. Dãy Con Tăng Dài Nhất

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

ami có một dãy số nguyên dương \(A\) gồm \(n\) phần tử và một dãy số nguyên dương \(B\) gồm \(m\) phần tử. Ngoài ra, dãy \(A\) là một dãy không giảm (\(A_i \le A_{i+1}\) \(\forall\) \(1 \leq i < n\)). Trong một thao tác, các bạn có thể xoá một phần tử ở \(B\) và chèn nó vào một vị trí bất kì trong \(A\). Rõ ràng, các bạn không thể thực hiện thao tác trên quá \(m\) lần.

Hãy tìm cách thực hiện thao tác trên một cách tối ưu để \(A\) vẫn là một dãy tăng dần và độ dài của \(A\) là lớn nhất.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(n\)\(m\) lần lượt là số phần tử của dãy \(A\)\(B\).

  • Dòng tiếp theo chứa \(n\) số nguyên dương \(A_i\) biểu thị một phần tử của dãy \(A\).

  • Dòng cuối cùng chứa \(m\) số nguyên dương \(B_i\) biểu thị một phần tử của dãy \(B\).

Output

  • Hãy in ra độ dài lớn nhất của dãy \(A\) sau khi thực hiện thao tác một cách tối ưu.

Scoring

  • Trong toàn bộ dữ liệu có \(1 \leq a_i \leq 10^9\).

  • \(50\)% điểm tương ứng với \(1 \leq n, m \leq 10\).

  • \(50\)% điểm tương ứng với \(1 \leq n, m \leq 2*10^5\).

Example

Test 1

Input
3 2
1 2 3
1 4
Output
4
Note

Ở ví dụ 1, ta có thể chèn số 4 vào sau phần tử cuối cùng của \(A\) để nhận được dãy [1, 2, 3, 4]. Do đó kết quả là 4.

Test 2

Input
2 2
1 5
4 3
Output
4
Note

Ở ví dụ 2, ta có thể chèn số 4 vào giữa số 1 và 5 của dãy \(A\) để nhận được dãy [1, 4, 5]. Sau đó tiếp tục chèn số 3 vào giữa hai số 1 và 4 để nhận được dãy [1, 3, 4, 5]. Do đó kết quả là 4.

6. Thao Tác Lớn Nhất

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

ami có một dãy hoán vị \(A\) độ dài \(n\). Nhắc lại, một hoán vị độ dài \(n\) là một dãy số mà mỗi số nguyên dương từ \(1\) đến \(n\) đều xuất hiện trong dãy đúng một lần.

Các bạn có thể chọn cặp số \(i\)\(j\) khác nhau và đổi chỗ \(A_i\)\(A_j\). Các bạn được áp dụng thao tác trên đúng 1 lần. Mục đích là cần làm cho giá trị \(S\) sau đạt lớn nhất:

\(S\) = \(\sum A_i * (n+1)^{1 + n - i}\) \(\forall\) \(1 \leq i \leq n\).

Hãy in ra dãy số tối ưu \(A\) sau khi thực hiện thao tác trên đúng một lần. Nếu có nhiều đáp án, các bạn có thể in ra một đáp án bất kì.

Input

Dòng đầu tiên chứa hai số nguyên dương \(n\) là số phần tử của dãy \(A\).

Dòng tiếp theo chứa \(n\) số nguyên dương \(A_i\) biểu thị một phần tử của dãy \(A\).

Dữ liệu đảm bảo dãy

Output

Hãy in ra dãy \(A\) sau khi thực hiện thao tác một cách tối ưu.

Sample Input 1

3 
1 2 3

Sample Output 1

3 2 1

Sample Input 2

2
1 2

Sample Output 2

2 1

Giới hạn

  • \(50\)% điểm tương ứng với \(2 \leq n\leq 10\).

  • \(50\)% điểm tương ứng với \(2 \leq n \leq 5000\).

Giải thích

Ở ví dụ 1, các cách thực hiện thao tác là:

  • Đổi cặp (1, 2) ta được 2 1 3, tổng \(S\) = \(2*4^2 + 1*4^1 + 3*4^0\) = 39.
  • Đổi cặp (2, 3) ta được 1 3 2, tổng \(S\) = \(1*4^2 + 3*4^1 + 2*4^0\) = 30.
  • Đổi cặp (1, 3) ta được 3 2 1, tổng \(S\) = \(3*4^2 + 2*4^1 + 1*4^0\) = 57.

Vậy đáp án là [3 2 1].

Ở ví dụ 2, chỉ có một cách đổi là đổi cặp (1, 2). Ta sẽ nhận được dãy [2 1].