[C++ Cơ bản 2 - C++CB2] Luyện tập 4 - Mảng 1 chiều

In mảng theo thứ tự ngược

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Thầy Quýt có một dãy gồm ~n~ số nguyên. Em hãy giúp thầy in ra dãy số đó theo thứ tự NGƯỢC LẠI (từ phần tử cuối cùng về phần tử đầu tiên).

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~ — số lượng phần tử của dãy.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~, cách nhau bởi dấu cách.

Output:

  • In ra ~n~ số nguyên là dãy đã cho theo thứ tự ngược lại, cách nhau bởi dấu cách.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~-1000 \le a_i \le 1000~

Ví dụ:

input

5
1 2 3 4 5

output

5 4 3 2 1

In các phần tử ở chỉ số lẻ

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên, đánh chỉ số từ ~0~. Em hãy in ra các phần tử nằm ở chỉ số LẺ (1, 3, 5, ...), theo đúng thứ tự xuất hiện trong dãy.

Nếu dãy không có phần tử nào ở chỉ số lẻ (tức là ~n = 1~), in ra dòng chữ KHONG CO.

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~.

Output:

  • In ra các phần tử ở chỉ số lẻ, cách nhau bởi dấu cách, hoặc KHONG CO nếu không có.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~-1000 \le a_i \le 1000~

Ví dụ:

input

5
10 20 30 40 50

output

20 40

Phần tử chính giữa mảng

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên. Em hãy in ra (các) phần tử nằm ở CHÍNH GIỮA dãy:

  • Nếu ~n~ LẺ, chỉ có một phần tử ở giữa — in ra phần tử đó.
  • Nếu ~n~ CHẴN, có hai phần tử ở giữa — in ra hai phần tử đó theo thứ tự xuất hiện trong dãy, cách nhau bởi dấu cách.

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~.

Output:

  • In ra phần tử (hoặc hai phần tử) chính giữa dãy như mô tả ở trên.

Ràng buộc:

  • ~1 \le n \le 1001~
  • ~-1000 \le a_i \le 1000~

Ví dụ 1 (n lẻ):

input

5
1 2 3 4 5

output

3

Ví dụ 2 (n chẵn):

input

4
1 2 3 4

output

2 3

Giá trị lớn nhất và vị trí xuất hiện đầu tiên

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên. Em hãy tìm giá trị lớn nhất trong dãy và cho biết nó xuất hiện ĐẦU TIÊN ở vị trí thứ mấy (đánh số vị trí bắt đầu từ 1).

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~.

Output:

  • In ra hai số nguyên: giá trị lớn nhất và vị trí xuất hiện đầu tiên của nó (đánh số từ 1), cách nhau bởi dấu cách.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~-1000 \le a_i \le 1000~

Ví dụ:

input

6
3 7 9 2 9 5

output

9 3

Giá trị nhỏ nhất và vị trí xuất hiện đầu tiên

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên. Em hãy tìm giá trị nhỏ nhất trong dãy và cho biết nó xuất hiện ĐẦU TIÊN ở vị trí thứ mấy (đánh số vị trí bắt đầu từ 1).

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~.

Output:

  • In ra hai số nguyên: giá trị nhỏ nhất và vị trí xuất hiện đầu tiên của nó (đánh số từ 1), cách nhau bởi dấu cách.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~-1000 \le a_i \le 1000~

Ví dụ:

input

6
3 1 9 2 1 5

output

1 2

Tổng và trung bình cộng

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên. Em hãy tính tổng và trung bình cộng của dãy.

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~.

Output:

  • Dòng đầu tiên in ra tổng của dãy.
  • Dòng thứ hai in ra trung bình cộng của dãy, làm tròn đến 2 chữ số thập phân.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~-1000 \le a_i \le 1000~

Ví dụ:

input

4
1 2 3 4

output

10
2.50

Đếm số lượng số chẵn và số lẻ

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên. Em hãy đếm xem có bao nhiêu số chẵn và bao nhiêu số lẻ trong dãy.

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~.

Output:

  • In ra hai số nguyên: số lượng số chẵn và số lượng số lẻ, cách nhau bởi dấu cách.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~-1000 \le a_i \le 1000~

Ví dụ:

input

5
1 2 3 4 5

output

2 3

Tổng các số dương và tổng các số âm

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên. Em hãy tính tổng các số DƯƠNG và tổng các số ÂM trong dãy (các số bằng 0 không tính vào tổng nào cả).

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~.

Output:

  • In ra hai số nguyên: tổng các số dương và tổng các số âm, cách nhau bởi dấu cách.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~-1000 \le a_i \le 1000~

Ví dụ:

input

5
3 -2 0 5 -7

output

8 -9

Đảo mảng và đếm số lần hoán đổi

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên. Em hãy đảo ngược thứ tự các phần tử trong dãy bằng kỹ thuật HOÁN ĐỔI (swap) từng cặp phần tử đối xứng qua giữa dãy, rồi in ra:

  • Số lần hoán đổi (swap) đã thực hiện.
  • Dãy sau khi đã đảo ngược.

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~.

Output:

  • Dòng đầu tiên in ra số lần hoán đổi đã thực hiện.
  • Dòng thứ hai in ra dãy sau khi đảo ngược, cách nhau bởi dấu cách.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~-1000 \le a_i \le 1000~

Ví dụ:

input

5
1 2 3 4 5

output

2
5 4 3 2 1

Đếm số phần tử lớn hơn trung bình cộng

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên. Em hãy tính điểm trung bình cộng của dãy, sau đó đếm xem có bao nhiêu phần tử LỚN HƠN (nghiêm ngặt) giá trị trung bình cộng đó.

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~.

Output:

  • In ra một số nguyên duy nhất là số lượng phần tử lớn hơn trung bình cộng.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~-1000 \le a_i \le 1000~

Ví dụ:

input

5
1 2 3 4 10

output

1

Giá trị lớn nhất và lớn thứ hai

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên, đảm bảo có ÍT NHẤT hai giá trị PHÂN BIỆT trong dãy. Em hãy tìm giá trị lớn nhất và giá trị lớn thứ hai (là giá trị lớn nhất trong số các phần tử nhỏ hơn giá trị lớn nhất), chỉ dùng MỘT lần duyệt mảng.

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~.

Output:

  • In ra hai số nguyên: giá trị lớn nhất và giá trị lớn thứ hai, cách nhau bởi dấu cách.

Ràng buộc:

  • ~2 \le n \le 1000~
  • ~-1000 \le a_i \le 1000~
  • Dãy có ít nhất hai giá trị phân biệt.

Ví dụ:

input

5
3 9 9 2 7

output

9 7

Đếm số lượng giá trị khác nhau

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên, mỗi số có giá trị từ ~0~ đến ~100~. Em hãy đếm xem có bao nhiêu giá trị KHÁC NHAU xuất hiện trong dãy. Sử dụng mảng đánh dấu (visited array) để giải bài này.

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~ ~(0 \le a_i \le 100)~.

Output:

  • In ra một số nguyên duy nhất là số lượng giá trị khác nhau xuất hiện trong dãy.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~0 \le a_i \le 100~

Ví dụ:

input

6
3 5 3 2 5 5

output

3

Kiểm tra mảng có phần tử trùng nhau không

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên, mỗi số có giá trị từ ~0~ đến ~100~. Em hãy kiểm tra xem trong dãy có tồn tại hai phần tử trùng giá trị nhau hay không.

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~ ~(0 \le a_i \le 100)~.

Output:

  • In ra CO TRUNG nếu tồn tại ít nhất một cặp phần tử trùng giá trị nhau, ngược lại in ra KHONG TRUNG.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~0 \le a_i \le 100~

Ví dụ 1:

input

5
1 2 3 2 5

output

CO TRUNG

Ví dụ 2:

input

4
1 2 3 4

output

KHONG TRUNG

Giá trị xuất hiện nhiều lần nhất

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên, mỗi số có giá trị từ ~0~ đến ~100~. Em hãy tìm giá trị xuất hiện NHIỀU LẦN NHẤT trong dãy. Nếu có nhiều giá trị cùng có số lần xuất hiện nhiều nhất, in ra giá trị NHỎ NHẤT trong số đó. Sử dụng mảng đếm tần suất để giải bài này.

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~ ~(0 \le a_i \le 100)~.

Output:

  • In ra một số nguyên duy nhất là giá trị xuất hiện nhiều lần nhất.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~0 \le a_i \le 100~

Ví dụ:

input

7
3 5 3 2 5 5 2

output

5

Giá trị nhỏ nhất chưa xuất hiện

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 100

Cho một dãy gồm ~n~ số nguyên KHÔNG ÂM, mỗi số có giá trị từ ~0~ đến ~100~. Em hãy tìm số nguyên KHÔNG ÂM nhỏ nhất KHÔNG xuất hiện trong dãy.

Ví dụ dãy {0, 1, 2, 4} thì kết quả là 3 (vì 0, 1, 2 đều có mặt, còn 3 thì không).

Input:

  • Dòng đầu tiên chứa một số nguyên ~n~.
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \ldots, a_n~ ~(0 \le a_i \le 100)~.

Output:

  • In ra một số nguyên duy nhất là giá trị không âm nhỏ nhất không xuất hiện trong dãy.

Ràng buộc:

  • ~1 \le n \le 1000~
  • ~0 \le a_i \le 100~

Ví dụ:

input

4
0 1 2 4

output

3