Tham lam 6
Phần tử gần giá trị trung bình nhất
Nộp bàiPoint: 1
Nhập 1 số nguyên dương N, sau đó nhập tiếp 1 dãy gồm N số nguyên. Tìm trung bình cộng của dãy số và tìm giá trị của phần tử gần với trung bình cộng nhất.
Input:
Dòng đầu tiên chứa số nguyên dương N (1 ≤ N ≤ 10^6).
Dòng tiếp theo chứa N số nguyên x (|x| ≤ 10^9).
Output:
Dòng đầu tiên ghi ra trung bình cộng của dãy số (làm tròn đến chữ số thập phân thứ 3).
Dòng tiếp theo ghi ra giá trị của phần tử gần với trung bình cộng nhất. Nếu có nhiều giá trị thoả mãn, in ra giá trị ở vị trí bé nhất.
Ví dụ:
Input:
3
3 5 10
Output:
6.000
5
Khoảng cách lớn nhất
Nộp bàiPoint: 1
Nhập 1 số nguyên dương N, sau đó nhập tiếp 1 dãy gồm N số nguyên. Tìm cặp đôi liên tiếp có khoảng cách lớn nhất.
Ghi ra khoảng cách lớn nhất đó.
Input:
• Dòng đầu tiên chứa số nguyên dương N (2 ≤ N ≤ 10^5).
• Dòng tiếp theo chứa N số nguyên x (|x| ≤ 10^9).
Output:
In ra khoảng cách lớn nhất.
Input:
4
1 3 5 10
Output:
5
Tổng các số lẻ (mảng 1 chiều cơ bản)
Nộp bàiPoint: 1
Cho mảng gồm n số nguyên. Hãy tính tổng tất cả các số lẻ trong mảng.
Input:
Dòng 1: số nguyên n (1 ≤ n ≤ 1000).
Dòng 2: n số nguyên.
Output:
Một số nguyên duy nhất là tổng các số lẻ.
Ví dụ:
Input:
5
1 2 3 4 5
Output:
9
Thêm phần tử vào vị trí k
Nộp bàiPoint: 1
Cho một mảng gồm n số nguyên và hai số nguyên x, k. Hãy chèn số x vào vị trí k (chỉ số bắt đầu từ 1). Nếu k = n+1 thì chèn vào cuối mảng.
Input:
Dòng 1: số nguyên n (1 ≤ n ≤ 1000).
Dòng 2: n số nguyên.
Dòng 3: hai số nguyên x, k.
Output:
Mảng sau khi đã chèn.
Ví dụ:
Input:
4
1 2 4 5
3 3
Output:
1 2 3 4 5
Tam giác vuông
Nộp bàiPoint: 1
Theo định lý Pytago, ta đã biết một bộ 3 số (a, b, c) thỏa mãn a^2 + b^2 = c^2 thì đó là ba cạnh của một tam giác vuông. Cho dãy số A[] gồm có N phần tử. Nhiệm vụ của bạn là kiểm tra xem có tồn tại bộ ba số thỏa mãn là ba cạnh của tam giác vuông hay không.
Dữ liệu vào:
- Dòng đầu tiên là số lượng bộ test T (T ≤ 20).
- Mỗi test gồm số nguyên N (1 ≤ N ≤ 5000).
- Dòng tiếp theo gồm N số nguyên A[i] (1 ≤ A[i] ≤ 10^9).
Kết quả: Với mỗi test, in ra trên một dòng "YES" nếu tìm được, và "NO" trong trường hợp ngược lại.
Ví dụ:
Input:
2
5
3 1 4 6 5
3
1 1 1
Output:
YES
NO
Đếm cặp số bằng nhau
Nộp bàiPoint: 1
Viết chương trình đếm các cặp số bằng nhau liên tiếp trong dãy số nguyên.
Đầu vào: Dòng đầu tiên ghi số bộ test. Mỗi bộ test có hai dòng:
- Dòng đầu ghi số phần tử của dãy, không quá 30
- Dòng tiếp theo ghi các phần tử của dãy, mỗi phần tử cách nhau một khoảng trống.
Các phần tử không quá 100.
Đầu ra: Mỗi bộ test viết ra trên một dòng giá trị tổng chữ số tương ứng
Input:
2
4
1 3 3 4
12
1 2 3 3 3 3 4 4 5 5 5 1
Output:
1
6
Chèn mảng tại vị trí p
Nộp bàiPoint: 1
Viết chương trình cho phép nhập vào mảng A một chiều n phần tử (n>1) và mảng B một chiều m phần tử (m>1). Thực hiện chèn mảng B vào mảng A tại vị trí p và in ra mảng kết quả
Định dạng đầu vào:
- Hàng thứ nhất là số phần tử của mảng A và mảng B
- Hàng thứ hai là các phần tử của mảng A
- Hàng thứ ba là các phần tử của mảng B
- Hàng thứ tư là vị trí chèn
INPUT:
5 3
1 2 3 4 5
6 7 8
3
OUTPUT:
1 2 3 6 7 8 4 5
Dịch từ phải sang trái
Nộp bàiPoint: 1
Viết chương trình cho phép nhập vào mảng A gồm n phần tư (n>1). Thực hiện dịch n phần tử của mảng sang trái và In ra mảng kết quả
Định dạng đầu vào:
Hàng thứ nhất là số phần tử n của mảng A
Hàng thứ hai là các phần tử của mảng A
Hàng thứ ba là số phần tử dịch
Định dạng đầu ra: Mảng kết quả
INPUT:
10
1 2 3 4 5 6 7 8 9 10
3
OUTPUT:
4 5 6 7 8 9 10 1 2 3
Dịch từ trái sang phải
Nộp bàiPoint: 1
Viết chương trình cho phép nhập vào mảng A gồm n phần tư (n>1). Thực hiện dịch n phần tử của mảng sang phải và In ra mảng kết quả
Định dạng đầu vào:
Hàng thứ nhất là số phần tử n của mảng A
Hàng thứ hai là các phần tử của mảng A
Hàng thứ ba là số phần tử dịch
Định dạng đầu ra: Mảng kết quả
INPUT:
10
1 2 3 4 5 6 7 8 9 10
3
OUTPUT:
8 9 10 1 2 3 4 5 6 7
Mảng đối xứng (mảng 1 chiều cơ bản)
Nộp bàiPoint: 1
Viết chương trình cho phép nhập mảng và kiểm tra xem mảng có đối xứng hay không. Nếu đối xứng in ra 1, không đối xứng in ra 0.
INPUT:
12
1 2 3 4 5 6 6 5 4 3 2 1
OUTPUT:
1
Chuyển số dương lên đầu mảng
Nộp bàiPoint: 1
Nhập vào một mảng A gồm các số nguyên có N phần tử, hãy chuyển các số dương lên đầu mảng theo cách làm xáo trộn ít nhất.
Ràng buộc: ~0 < N \leq 10^6~; ~-10^6 \leq A[i] \leq 10^6~
Dữ liệu vào gồm 2 dòng, dòng thứ nhất là số lượng N phần tử, dòng thứ 2 lần lượt là N phần tử trong mảng A.
Input 01:
5
-1 2 -3 4 5
Output 01:
5 2 4 -3 -1
Input 02:
5
1 2 -2 3 -5
Output 02:
1 2 3 -2 -5
Tổng các số dương liên tiếp lớn nhất
Nộp bàiPoint: 1
Nhập vào một mảng các số nguyên A có N phần tử, in ra tổng giá trị các số dương liên tiếp lớn nhất.
Ràng buộc: ~0 < N \leq 10^6~; ~-10^6 \leq A[i] \leq 10^6~
Dữ liệu vào gồm 2 dòng, dòng thứ nhất là số lượng N phần tử, dòng thứ 2 lần lượt là N phần tử trong mảng A.
Input 01:
10
5 1 4 1 3 -2 1 2 -3 10
Output 01:
14
Input 02:
10
5 1 4 1 3 -2 1 2 -3 20
Output 02:
20
Tìm số lượng số dương liên tiếp nhiều nhất trong mảng
Nộp bàiPoint: 1
Nhập vào một mảng A gồm các số nguyên dương có N phần tử, in ra số lượng các số dương liên tiếp nhiều nhất trong mảng.
Ràng buộc: ~0 < N \leq 10^6~; ~-10^6 \leq A[i] \leq 10^6~
Dữ liệu vào gồm 2 dòng, dòng thứ nhất là số lượng N phần tử, dòng thứ 2 lần lượt là N phần tử trong mảng A.
Input 01:
10
5 1 4 1 3 -2 1 2 -3 10
Output 01:
5
Số lượng các số dương liên tiếp nhiều nhất trong mảng trên là 5
Input 02:
15
5 1 4 1 3 -2 1 2 -3 10 11 12 13 14 14
Output 02:
6
Tìm vị trí lớn nhất của phần tử nhỏ nhất và ngược lại
Nộp bàiPoint: 1
Nhập vào một mảng A gồm các số nguyên dương có N phần tử, hãy tìm và in ra vị trí lớn nhất (bắt đầu từ 0) của phần tử nhỏ nhất và vị trí đầu tiên của phần tử lớn nhất.
(Nếu code bằng Python thì mỗi số sẽ được nhập trên một dòng, cần đọc từng dòng một)
Ràng buộc: ~0 < N \leq 10^6~; ~0 < A[i] \leq 10^6~
Dữ liệu vào gồm 2 dòng, dòng thứ nhất là số lượng N phần tử, dòng thứ 2 lần lượt là N phần tử trong mảng A.
Input:
10
5 1 4 10 3 2 1 2 3 10
Output:
1 6
10 3
Số 1 nhỏ nhất xuất hiện ở vị trí lớn nhất là 6
Số 10 lớn nhất xất hiện ở vị trí đầu tiên là 3
Phần tử xuất hiện nhiều nhất
Nộp bàiPoint: 1
Nhập vào một mảng A gồm các số nguyên có N phần tử, tìm phần tử có tần suất xuất hiện nhiều nhất, nếu có nhiều phần tử có cùng tần suất xuất hiện thì in ra phần tử có giá trị lớn hơn.
Ràng buộc: ~0 < N \leq 10^6~; ~-10^6 \leq A[i] \leq 10^6~
Dữ liệu vào gồm 2 dòng, dòng thứ nhất là số lượng N phần tử, dòng thứ 2 lần lượt là N phần tử trong mảng A.
Input 01:
10
5 1 4 1 3 -2 1 2 -3 10
Output 01:
1 3
Số 1 có tần suất xuất hiện 3 lần là lớn nhất
Input 02:
10
5 5 4 1 3 -2 1 2 -3 10
Output 02:
5 2
Số 1 và số 5 đều có tần suất xuất hiện 2 lần nhưng in ra số 5 vì 5 lớn hơn 1