Two Groups
Cho dãy số \(a\) gồm \(n\) phần tử. Hãy tìm cách chia dãy số này thành 2 dãy con liên tiếp \(s_1,s_2\) (có thể là dãy rỗng) sao cho:
- Với mọi \(1 \le i \le n\), \(a_i\) thuộc đúng một nhóm.
- Tổng \(|sum(s_1)|-|sum(s_2)|\) đạt giá trị lớn nhất có thể. Trong đó \(sum(s_1)\) thể hiện cho tổng tất cả các phần tử của dãy \(s_1\)
Input
- Dòng thứ nhất chứa số nguyên dương \(t\) \((t \le 10^3)\) - số testcase;
- Mỗi testcase tiếp theo có dạng như sau:
- Dòng thứ nhất chứa số nguyên dương \(n\) \((n \le 10^3)\);
- Dòng thứ hai chứa \(n\) số nguyên \(a_1,a_2,...,a_n\) \((-10^9 \le a_i \le 10^9)\)
Output
- Ứng với mỗi test case in ra giá trị \(|sum(s_1)|-|sum(s_2)|\) lớn nhất có thể.
Example
Test 1
Sample input
4
2
10 -10
4
-2 -1 11 0
3
2 3 2
5
-9 2 0 0 -4
Sample output
0
8
7
11
Explanation
- Trong testcase thứ nhất, ta có thể chia thành hai dãy \(s_1=\{10\}\), \(s_2=\{-10\}\).
- Trong testcase thứ hai, ta có thể chia thành hai dãy \(s_1=\{0;11;-1\}\), \(s_2=\{-2\}\)
- Trong testcase thứ ba, ta có thể chia thành hai dãy \(s_1=\{2;3;2\}\), \(s_2=\{\}\)
- Trong testcase thứ tư, ta có thể chia thành hai dãy \(s_1=\{-9;-4;0\}\), \(s_2=\{2;0\}\)
Note
- Nguồn: CF Round 832 div 2
Tập lớn nhất
Cho dãy số nguyên dương \(A = (a_1, a_2, . . ., a_n)\). Hãy tìm tập nhiều phần tử nhất có cùng ít nhất
một ước số chung lớn lớn hơn 1 và đưa ra số phần tử trong tập tìm được.
Ví dụ, với \(A = (6, 15, 10, 42)\), tập {\(6, 10, 42\)} chứa các số cùng chia hết cho 2 và là tập nhiều phần
tử nhất có cùng ít nhất một ước số chung lớn lớn hơn 1. Số lượng các phần tử trong tập là 3.
Input
- Dòng đầu tiên chứa số nguyên \(n\ (1 \le n \le 1000)\),
- Dòng thứ 2 chứa \(n\) số nguyên \(a_1, a_2, . . ., a_n (2 \le a_i \le 10^{18}, i = 1 ÷ n)\).
Output
- Đưa ra một số nguyên – số lượng phần tử của tập tìm được.
Example
Test 1
Input
4
6 15 10 42
Output
3
Vòng lái xe số 8 (bản dễ)
Bãi lái xe số tám có hình như sau:
Người lái xe xuất phát ở góc trên cùng bên trái của vòng số 8. Sau đó đi thẳng, rẽ xuống theo vòng xoắn của số 8, vòng lên ngược lại, sau đó rẽ về theo vòng xoắn của số 8 và trở về vị trí cũ. Sau khi trở lại vị trí cũ, người lái xe tiếp tục di chuyển như vậy cho đến khi có hiệu lệnh dừng. Dễ hiểu hơn, các bạn có thể nhìn hình minh họa:

Lưu ý: Màu mũi tên chỉ có tác dụng giúp bạn đọc dễ phân biệt hướng của đường đi chứ không phải hai đường đi riêng biệt.
Trên đường đi, sẽ có những điểm đánh dấu. Mỗi bên vòng xoắn của số 8 sẽ có \(a\) điểm theo chiều ngang và \(b\) điểm theo chiều dọc. Biết rằng, nếu người lái xe đi được từ một điểm đến điểm tiếp theo (theo hướng của vòng số 8), người lái xe sẽ được cộng một điểm.
Để dễ quản lý, các điểm đánh dấu sẽ được đánh số thứ tự. Các điểm ở hàng 1 sẽ được đánh số trước, sau đó là hàng 2, tương tự như vậy đến hàng cuối cùng. Lấy ví dụ như \(a = 2, b = 1\). Cách đánh số của các điểm sẽ hoạt động như hình dưới đây:

Hỏi nếu người lái xe đạt được \(v\) điểm, thì điểm đánh dấu cuối cùng mà người đó đi qua sẽ mang số thứ tự bao nhiêu?
Input:
Ba số nguyên dương \(a, b, v\)
Output:
Số thứ tự của điểm đánh dấu cuối cùng mà người đó đi qua.
Ví dụ:
Input:
2 1 15
Output:
6
Giải thích ví dụ
Người lái xe sẽ đi qua các điểm đánh dấu theo thứ tự như sau:
1 -> 2 -> 6 -> 10 -> 11 -> 7 -> 4 -> 3 -> 6 -> 9 -> 8 -> 5 -> 1 -> 2 -> 6 -> ...
Vậy, để có được 15 điểm, điểm đánh dấu cuối cùng mà người lái xe đi qua có số thứ tự thứ 6.
Giới hạn:
- 100% số test \(v \le 10^6, a \le 500, b \le 500\)
Polynomial Queries
Cho một mảng gồm \(N\) phần tử. Nhiệm vụ của bạn là thực hiện các truy vấn sau:
- \(1\) \(a\) \(b\): Tăng phần tử đầu tiên trong đoạn \([a, b]\) lên \(1\), phần tử thứ hai lên \(2\), phần tử thứ ba lên \(3\), \(\ldots\)
- \(2\) \(a\) \(b\): Tính tổng các phần tử trong đoạn \([a, b]\).
Input
- Dòng thứ nhất gồm hai số nguyên dương \(N, Q\) \((N, Q \leq 2 \times 10^{5})\): kích thước mảng và số truy vấn.
- Dòng thứ hai gồm \(N\) số nguyên dương \(A_{1}, A_{2}, \ldots, A_{N}\) \((1 \leq A_{i} \leq 10^9)\).
- \(Q\) dòng tiếp theo, mỗi dòng là một truy vấn thuộc một trong hai dạng sau:
- \(1\) \(a\) \(b\) \((1 \leq a \leq b \leq N)\).
- \(2\) \(a\) \(b\) \((1 \leq a \leq b \leq N)\).
Output
- In ra kết quả cho các truy vấn \(2\).
Scoring
- Subtask \(1\) (\(50\%\) số điểm): \(N, Q \leq 2 \times 10^{3}\).
- Subtask \(2\) (\(50\%\) số điểm): không có rằng buộc gì thêm.
Example
Test 1
Input
5 3
4 2 3 1 7
2 1 5
1 1 5
2 1 5
Output
17
32
