Kiểm tra C++ Lớp 8,9 (Lần 1)

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 Tính số bàn học 10 (p) 1.0s 256M
2 Gàu nước 10 (p) 1.0s 256M
3 Số lượng ước số của n 10 (p) 1.0s 640M
4 Tính tổng 1 10 (p) 1.0s 512M
5 Tính tổng 2 10 (p) 1.0s 512M
6 list003_in mảng từ i đến j 10 (p) 1.0s 256M
7 List005_in các số chẳn trong mảng 10 (p) 1.0s 256M
8 List006_in mảng đảo ngược 10 (p) 1.0s 256M
9 Sắp xếp không giảm 10 (p) 1.0s 256M
10 List010_đếm trong mảng có bao nhiêu tên giống nhau 10 (p) 1.0s 256M
11 Tổng dãy con 50 (p) 1.0s 256M

1. Tính số bàn học

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

Trường mới rộng và đẹp hơn trường cũ, số phòng học cũng nhiều hơn so với trước. Nhà trường định tuyển thêm học sinh cho ba lớp mới với số lượng học sinh mỗi lớp tương ứng là \(a, b, c\). Cần mua bàn cho các lớp mới này. Mỗi bàn không có quá \(2\) chỗ ngồi cho học sinh. Xác định số lượng bàn tối thiểu cần mua?

Input

  • Gồm ba dòng ghi lần lượt \(a, b, c\) (các giá trị số nguyên dương trong \([1, 500]\)).

Output

  • Một số nguyên là số lượng bàn tối thiểu cần mua (xem thêm ví dụ mẫu để biết định dạng output).

Example

Test 1

Input
35 
42 
39 
Output
So ban toi thieu can mua: 59 

2. Gàu nước

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

Rùa có một cái xô nước đang chứa \(L\) lít nước. Rùa muốn lấy cái xô làm việc khác nên Rùa muốn chuyển lượng nước sang những chiếc gàu nước.
Biết rằng, nhà Rùa có vô tận những chiếc gàu thuộc 2 loại, loại chứa được \(5\) lít và loại chứa được \(2\) lít. Hỏi, tổng số gàu ít nhất Rùa cần sử dụng để đong ít nhất \(L\) lít nước là bao nhiêu?

Input

  • Một dòng duy nhất chứa một số nguyên \(L\) \((1 \leq L \leq 10^{18})\)

Output

  • In ra tổng số gàu ít nhất Rùa cần sử dụng

Test 1

Input
27
Output
6
Note
  • Với \(L=27\), Rùa có thể sử dụng \(5\) gàu nước 5 lít và \(1\) gàu nước 2 lít.

Test 2

Input
30
Output
6
Note
  • Với \(L=30\), Rùa có thể sử dụng \(6\) gàu nước 5 lít.

3. Số lượng ước số của n

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

Viết chương trình nhập vào số nguyên \(n\) (\(n\leq 10^7\)). In ra số lượng ước số của \(n\). (Ước số của \(n\) là các số nguyên mà \(n\) chia hết)

Ví dụ: \(n=10\) thì \(4\) ước số: \(1\) \(2\) \(5\) \(10\)

Input

  • Một số nguyên dương \(n\).

Output

  • In ra số lượng ước số của \(n\).

Example

Test 1

Input
10
Output
4

Test 2

Input
36
Output
9

4. Tính tổng 1

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

Nhập vào 1 số nguyên \(n\).

Tính tổng \(1*1*1 + 2*2*2 + 3*3*3 + … + n*n*n\).

Example

Test 1

Input
3 
Output
36

5. Tính tổng 2

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

Nhập vào 2 số nguyên \(n, q\).

Yêu cầu:

  • Tính tổng \(q^0 - q^1 + q^2 - q^3 + ... - q^n\). (nếu \(n\) lẻ)

  • Tính tổng \(q^0 - q^1 + q^2 - q^3 + ... + q^n\). (nếu \(n\) chẵn)

Example

Test 1

Input
2  3 
Output
7

6. list003_in mảng từ i đến j

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

Nhập mảng \(a\) gồm \(n\) số nguyên và 2 chỉ số \(i\) và \(j\). In các giá trị trong mảng \(a\) từ vị trí \(i\) đến vị trí \(j\).

Input

  • Dòng đầu tiên chứa số nguyên \(n\) (\(1 \le n \le 10^5\)).
  • Dòng thứ hai chứa \(n\) số nguyên của mảng \(a\) (\(|a_k| \le 10^9\)).
  • Dòng thứ ba chứa hai chỉ số \(i\) và \(j\) (\(1 \le i \le j \le n\)).

Output

  • In ra các phần tử của mảng \(a\) từ vị trí \(i\) đến vị trí \(j\), mỗi phần tử cách nhau một khoảng trắng.

Example

Test 1

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

7. List005_in các số chẳn trong mảng

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

Nhập mảng \(a\) gồm \(n\) số, in các số chẵn ở trong mảng.

Input

  • Dòng đầu tiên chứa số nguyên \(n\) (\(1 \le n \le 10^5\)).
  • Dòng thứ hai chứa \(n\) số nguyên của mảng \(a\) (các phần tử có giá trị trong khoảng từ \(-10^9\) đến \(10^9\)).

Output

  • In ra các số chẵn trong mảng, mỗi số cách nhau một khoảng trắng.

Example

Test 1

Input
5
1 2 3 4 5
Output
2 4

8. List006_in mảng đảo ngược

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

Nhập mảng hocsinh gồm \(n\) bạn. In ra mảng đảo ngược của mảng hocsinh.

Input

  • Dòng đầu tiên gồm số nguyên dương \(n\) (\(1 \le n \le 10^5\)).
  • Dòng thứ hai gồm \(n\) chuỗi ký tự đại diện cho tên các bạn trong mảng hocsinh.

Output

  • In ra mảng đảo ngược của mảng hocsinh, các phần tử cách nhau bởi khoảng trắng hoặc xuống dòng tùy thuộc vào định dạng đề bài.

Example

Test 1

Input
3
An Binh Chi
Output
Chi Binh An

9. Sắp xếp không giảm

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

Cho một dãy gồm \(n\) số nguyên dương \(A_1, A_2,…, A_n\). (\(N ≤ 10^4, A_i ≤ 10^9\)). Hãy in ra dãy số sau khi sắp xếp dãy số tăng dần (\(A_i ≤ A_{i+1}\)).

Input

  • Dòng đầu chứa số \(n\),
  • Dòng thứ hai chứa \(n\) số nguyên dương \(A_1, A_2,…, A_n\).

Output

  • Một dòng chứa dãy số đã sắp xếp tăng dần.

Example

Test 1

Input
6
91 451 43 3 451 54 
Output
3 43 54 91 451 451

10. List010_đếm trong mảng có bao nhiêu tên giống nhau

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

Cho một mảng gồm \(n\) tên học sinh và một cái tên cần tìm, hãy đếm xem trong mảng có bao nhiêu bạn cùng tên đó.

Yêu cầu dòng đầu nhập \(n\), dòng tiếp theo nhập tên cần tìm, các tên trong mảng nhập trên một hàng.

Input

  • Dòng đầu tiên chứa số nguyên \(n\) (\(0 < n \leq 10^5\)).
  • Dòng thứ hai chứa tên học sinh cần tìm.
  • Dòng thứ ba chứa \(n\) tên học sinh trong mảng, cách nhau bởi khoảng trắng.

Output

  • In ra một số nguyên duy nhất là số lượng học sinh có tên trùng với tên cần tìm trong mảng.

Example

Test 1

Input
5
An
Binh An Nam An Huy
Output
2

11. Tổng dãy con

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

Cho dãy số nguyên gồm n phần tử \(a_1,a_2,\cdots,a_n\) \((|a_i| \leq 10^9)\). Cho giá trị \(x\) và \(q\) câu hỏi có dạng \(S(u,v)\). Với \(S(u,v)\) là tổng các giá trị của các phần tử từ \(u\) đến \(v\).

Yêu cầu: Đếm xem trong \(q\) câu hỏi đó có bao câu hỏi có giá trị nhỏ hơn \(x\).

Input

  • Dòng đầu tiên chứa ba số nguyên dương \(n,x,q (x \leq 10^9,q \leq 10^5)\).
  • Dòng thứ hai chứa \(a_1,a_2,\cdots,a_n (|a_i| \leq 10^9)\).
  • \(q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên dương \(u,v (1 \leq u \leq v \leq n)\).

Output

  • In ra một số nguyên là số lượng câu hỏi có giá trị nhỏ hơn \(x\)

Scoring

  • Subtask \(1\) (\(50\%\) số điểm): \(n \leq 500\)
  • Subtask \(2\) (\(30\%\) số điểm): \(n \leq 10^4\)
  • Subtask \(3\) (\(30\%\) số điểm): \(n \leq 10^5\)

Example

Test 1

Input
5 6 3
7 2 1 6 5
2 3
3 4
5 5 
Output
2
Note
  • \(S(2,3)=2+1=3<x=6\)
  • \(S(3,4)=1+6=7>x=6\)
  • \(S(5,5)=5<x=6\)
    Vậy có 2 câu hỏi có giá trị nhỏ hơn \(x=6\)