CPP Basic 2 - FOS12 - Final Test

Bộ đề bài

1. DHEXP - Biểu thức

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

Một dãy gồm \(n\) số nguyên \(a_1, a_2,..., a_n\) được viết thành một hàng ngang, giữa hai số liên tiếp có một khoảng trắng, như vậy có tất cả \((n-1)\) khoảng trắng. Người ta muốn đặt \(k\) dấu cộng và \((n-1-k)\) dấu trừ vào \((n-1)\) khoảng trắng đó để nhận được một biểu thức có giá trị lớn nhất.

Ví dụ, với dãy gồm 5 số nguyên \(28, 9, 5, 1, 69\)\(k = 2\) thì cách đặt \(28+9-5-1+69\) là biểu thức có giá trị lớn nhất.

Yêu cầu: Cho dãy gồm n số nguyên \(a_1, a_2,..., a_n\) và số nguyên dương \(k\), hãy tìm cách đặt \(k\) dấu cộng và \((n-1-k)\) dấu trừ vào \((n-1)\) khoảng trắng để nhận được một biểu thức có giá trị lớn nhất.

Input

  • Dòng đầu chứa hai số nguyên dương \(n, k (k < n)\);
  • Dòng thứ hai chứa n số nguyên \(a_1, a_2,..., a_n\) (\(a_n ≤ 10^6\))

Output

  • Một số nguyên là giá trị của biểu thức đạt được.

Ví dụ

Input:

5 2
28 9 5 1 69

Output:

100

Ghi chú:

  • Có 50% số test ứng với 50% số điểm có \(n ≤ 10^5\)\(k = 1\);
  • Có 50% số test còn lại ứng với 50% số điểm có \(n ≤ 10^5\);

2. Giá trị trung bình

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

Bạn được một mảng \(A\) gồm \(N\) số nguyên dương.

Bạn sẽ chọn một số phần tử từ mảng \(A\) sao cho giá trị trung bình của các phần tử đã chọn nhỏ hơn \(K\).

Nhiệm vụ của bạn là xác định xem có thể chọn nhiều nhất bao nhiêu phần tử với \(K\) cho trước.

Input

  • Dòng đâu tiên chứa số nguyên dương \(N\) \((N \leq 5*10^5)\).
  • Dòng 2 chứa \(N\) số nguyên dương \(A_i\) \((A_i \leq 10^9)\).
  • Dòng thứ 3 chứa số nguyên \(Q\) \((Q \leq 5\times 10^5)\) - là số câu hỏi.
  • \(Q\) dòng tiếp theo, mỗi dòng chứa \(1\) giá tri \(K\) \((K \leq 10^9)\).

Output

  • Gồm \(Q\) dòng, mỗi dòng chứa câu trả lời cho mỗi câu hỏi.

Example

Test 1

Input
5
1 2 3 4 5
5
1
2
3
4
5
Output
0
2
4
5
5

3. Tổng các ước nguyên tố (TS10 LQĐ, Đà Nẵng 2014)

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

Số nguyên dương \(x\) được gọi là một ước nguyên tố của số nguyên \(k\) nếu \(k\) chia hết cho \(x\)\(x\) là số nguyên tố.

Yêu cầu: Nhập từ bàn phím một số nguyên dương \(k\). Hãy in ra màn hình tổng các ước nguyên tố của số \(k\).

Dữ liệu

  • Số nguyên dương \(k\)

Kết quả

  • Tổng các ước nguyên tố của số \(k\)

Input

21

Output

10

Ràng buộc

  • Sub1: 70% test: \(k\le 10^{10}\) theo đề chuẩn
  • Sub2: 30% test: \(k\le 10^{16}\) mở rộng

Nguồn: Bài 1 TS10 LQĐ TPĐN '2014

4. Nguyên tố Again

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

In ra tất cả cặp số nguyên tố \(A,B(A\le B)\) thỏa mãn \(A+B\) cũng là số nguyên tố và \(A+B\le N\). (In theo thứ tự từ điển từ bé đến lớn)

Input

  • Dòng thứ nhất chứa số nguyên dương \(N(1\le N\le 10^6)\)

Output

  • Dòng thứ nhất in ra số \(k\) - số lượng cặp \((A,B)\) thỏa mãn yêu cầu bài toán

  • In ra \(k\) cặp \((A,B)\) thỏa mãn yêu cầu bài toán (theo thứ tự từ điển từ bé đến lớn).

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(0<N\le 10\)

  • Subtask \(2\) (\(20\%\) số điểm): \(0<N\le 10^4\)

  • Subtask \(3\) (\(60\%\) số điểm): \(\text{Còn lại}\)

Example

Test 1

Input
7
Output
2
2 3
2 5

5. Cùng ước chung lớn nhất

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

Bạn được cho 2 số nguyên dương \(a, b\) \((a<b)\). Hãy tính số các số x thỏa mãn \(0\leq x <b\)\(\gcd(a,b)=\gcd(a+x,b)\).

\(\gcd(x,y)\): Ước chung lớn nhất của \(x\)\(y\).

Input

  • Dòng đầu tiên chứa \(t\) \((1 \leq t \leq 50)\) - số câu hỏi.
  • \(t\) dòng tiếp theo, mỗi dòng chứa hai số nguyên dương \(a\)\(b\) \((1 \leq a, b \leq 10^{10})\).

Output

  • Ứng với mỗi câu hỏi in ra số \(x\) cần tìm.

Scoring

  • Subtask \(1\) (\(50\%\) số điểm): \((1 \leq a, b \leq 1000)\);
  • Subtask \(2\) (\(50\%\) số điểm): không ràng buộc gì thêm.

Example

Test 1

Input
3
4 9
5 10
42 9999999967 
Output
6
1
9999999966
Note
  • Test 1: \(x\) có thể là một trong các số \([0,1,3,4,6,7]\).
  • Test 2: \(x\) chỉ có thể là 0

6. GCDSUM

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

Cho số nguyên dương \(N\).

Tính giá trị biểu thức:

\[\sum\limits_{i = 1}^{N} {GCD(N,{i^2})}\]


Nói cách khác, bạn hãy tính giá trị của biểu thức \(GCD(N,1^2) + GCD(N, 2^2) + .... + GCD(N,N^2)\).

Trong đó, \(GCD(a,b)\) chính là ước chung lớn nhất của \(a\)\(b\).

Định nghĩa: Ước chung lớn nhất của hai số \(a\)\(b\) là số nguyên
dương lớn nhất mà cả \(a\)\(b\) đều chia hết.

Input

  • Dòng đầu ghi \(q\) \((q \le 75)\) - số câu hỏi.
  • \(q\) dòng tiếp theo, mỗi dòng ghi số nguyên dương \(N\) \((N \le 10^5)\).

Output

  • Ứng với mỗi testcase, in ra đáp án cần tìm.

Example

Test 1

Input
2
1
2
Output
1
3
Note
  • \(GCD(1,1) = 1\)
  • \(GCD(2,1) + GCD(2,4) = 1 + 2 = 3\)