Mảng 1 chiều trung bình
Mảng đối xứng
Nộp bàiPoint: 1
Cho mảng số nguyên A[] gồm N phần tử, kiểm tra xem mảng có đối xứng hay không?
Đầu vào
Dòng đầu tiên là số nguyên dương N
Dòng thứ 2 gồm N số nguyên viết cách nhau một vài khoảng trắng
Giới hạn
1<=N<=10^6
0<=A[i]<=10^6
Đầu ra
In ra YES hoặc NO tương ứng với mảng đối xứng hoặc không.
Ví dụ :
Input 01
5
1 2 3 2 1
Output 01
YES
Input 02
6
1 2 3 2 1 1
Output 02
NO
Mảng con
Nộp bàiPoint: 1
Cho mảng A[] gồm N phần tử, mảng B gồm M phần tử. Nhiệm vụ của bạn là xác định xem B có phải là một mảng con (không cần liên tiếp nhưng cần giữ đúng thứ tự các phần tử) của mảng A.
Ví dụ mảng A[] = {1, 1, 2, 8, 9, 3, 4}, B[] = {1, 2, 9, 4} là một mảng con của mảng A
Đầu vào
Dòng đầu tiên gồm N và M
Dòng thứ 2 gồm N số A[i]
Dòng thứ 3 gồm M số B[i]
Giới hạn
1<=N,M<=10^6
1<=A[i],B[i]<=10^6
Đầu ra
In ra YES nếu B là mảng con của A, ngược lại in NO.
Ví dụ :
Input 01
16 2
3 6 10 10 10 2 8 4 2 1 9 4 2 1 6 3
2 3
Output 01
YES
Chia mảng
Nộp bàiPoint: 1
Cho mảng A[] gồm N số nguyên không âm và số K. Nhiệm vụ của bạn là hãy chia mảng A[] thành hai mảng con có kích cỡ K và N-K sao cho hiệu giữa tổng hai mảng con là lớn nhất.
Ví dụ : mảng A[] = {8, 4, 5, 2, 10}, K=2 ta có kết quả là 17 vì mảng A[] được chia thành hai mảng {4, 2} và { 8, 5,10} có hiệu của hai mảng con là 23-6=17 là lớn nhất.
Gợi ý : Đưa những số nhỏ về tập có ít phần tử, những số lớn về tập có nhiều phần tử thì độ lệch sẽ lớn nhất.
Đầu vào
Dòng đầu tiên là 2 số N và K.
Dòng thứ 2 là N số trong mảng A
Giới hạn
1≤ K < N ≤ 10^5
0 ≤ A[i] ≤ 10^7
Đầu ra
In ra hiệu lớn nhất có thể.
Ví dụ :
Input 01
5 2
8 4 5 2 10
Output 01
17
Tìm độ chênh lệch nhỏ nhất giữa 2 phần tử bất kỳ trong mảng
Nộp bàiPoint: 1
Cho mảng số nguyên A gồm N phần tử, hãy tìm độ chênh lệch nhỏ nhất giữa 2 phần tử bất kỳ trong mảng
Đầu vào: Dòng đầu tiên là số nguyên dương N; Dòng thứ 2 gồm N các số nguyên cách nhau một khoảng trắng
Ràng buộc: ~1 <= N <= 1000~; ~0 <= A[i] <= 10^6~
Đầu ra: In ra độ chênh lệch nhỏ nhất giữa 2 phần tử bất kỳ trong mảng
Ví dụ:
Input 01:
5
4 1 6 2 10
Output 01:
1
Input 02
6
-5 1 -2 7 4 -3
Output 02:
1
Tìm ước chung lớn nhất của tất cả các phần tử trong mảng
Nộp bàiPoint: 1
Cho mảng A gồm N phần tử là số nguyên, tìm ước chung lớn nhất của tất cả các phần tử trong mảng (là số lớn nhất mà tất cả các số trong mảng đều chia hết)
Ràng buộc: ~1<=N<=10^6; 0<=A[i]<=10^6~
Input 01:
6
2 4 6 8 10 8
Output 01:
2
Input 02:
7
5 10 15 20 25 30 40
Output 02:
5
Vị trí của phần tử nhỏ nhất cuối cùng trong mảng
Nộp bàiPoint: 1
Nhập vào một mảng các số nguyên A có N phần tử, tìm phần tử nhỏ nhất cuối cùng có 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.
In phần tử nhỏ nhất cuối cùng trong mảng kèm theo vị trí của phần tử đó
Input 01:
5
6 1 4 6 1
Output 01:
1 5
Số 1 nhỏ nhất cuối cùng ở vị trí 5
Input 02:
6
1 3 1 4 0 7
Output 02:
0 5
Vị trí của phần tử lớn nhất đầu tiên có trong mảng
Nộp bàiPoint: 1
Nhập vào một mảng các số nguyên A có N phần tử, tìm phần tử lớn nhất đầu tiên 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.
In phần tử lớn nhất đầu tiên trong mảng kèm theo vị trí của phần tử đó
Input 01:
5
6 1 4 6 3
Output 01:
6 1
Số 6 lớn nhất đầu tiên ở vị trí 4
Input 02:
6
1 3 1 4 1 7
Output 02:
7 6
Kiểm tra mảng có tăng dần hay không
Nộp bàiPoint: 1
Nhập vào một mảng các số nguyên A có N phần tử, kiểm tra xem mảng vừa nhập có phải là mảng tăng dần không, nếu đúng in ra YES, ngược lại in ra NO
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.
Lưu ý: Nếu code bằng Python thì nhập một giá trị số trên 1 dòng
Input 01:
5
5 1 4 6 3
Output 01:
NO
Input 02:
6
1 1 2 3 4 5
Output 02:
YES
In ra ngày thứ bao nhiêu trong năm
Nộp bàiPoint: 1
Xây dựng hàm nhập vào ngày, tháng, năm (giả sử nhập đúng, không cần kiểm tra hợp lệ, chú ý trường hợp năm nhuận). Tính xem ngày đó là ngày thứ bao nhiêu trong năm. Ví dụ ngày 31/1/2024 là ngày thứ 31 trong năm
Input 01:
1 3 2024
Ngày 1 tháng 3 năm 2024
Output 01:
61
Là ngày thứ 61 trong năm (năm 2024 là năm nhuận nên tháng 2 có 29 ngày)
Input 02:
1 2 2024
Output 02:
32
In ra các giá trị bằng chỉ số của chính nó trong mảng
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 các phần tử có giá trị bằng chỉ số của chính nó trong mảng (chỉ số tính từ 0), nếu không có thì in ra NONE. Ví dụ phần tử có giá trị là 2 ở chỉ số 2 thì bạn hãy in ra.
(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~; ~-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 3 4 -2 1 7 -3 10
Output 01:
1 3 4 7
Input 02:
10
5 2 4 4 5 -2 1 8 -3 10
Output 01:
NONE
Phần tử âm lớn nhất
Nộp bàiPoint: 1
Nhập vào một mảng A các số nguyên có N phần tử, tìm số hạng âm lớn nhất của mảng và chỉ số của nó. Nếu có nhiều số hạng âm thỏa mãn thì in ra chỉ số ở vị trí đầu tiên.
(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)
Dòng thứ nhất Nhập N, từ dòng thứ 2 sẽ lần lượt nhập N phần tử của mảng A
In ra phần tử âm lớn nhất và vị trí của nó trong mảng A
Ràng buộc: ~0 < N \leq 10^6, -10^6 \leq A[i] \leq 10^6~
Input 01:
9
4 -3 4 -2 -2 4 2 3 4
Output 01:
-2 4
Số âm lớn nhất ở vị trí đầu tiên là số -2 và ở vị trí thứ 4 trong mảng
Input 02:
11
4 -3 4 -2 -2 4 2 3 4 -1 -1
Output 02:
-1 10
Số lớn nhất, lớn thứ hai trong mảng
Nộp bàiPoint: 1
Cho mảng số nguyên A[] gồm N phần tử, tìm số lớn nhất và lớn thứ 2 trong mảng. Chú ý 2 giá trị này có thể giống nhau.
Định dạng đầu vào: Dòng đầu tiên là số nguyên dương N; dòng thứ 2 gồm N số nguyên viết cách nhau một vài khoảng trắng.
Ràng buộc: 2<=N<=10^6; 0<=A[i]<=10^6
Định dạng đầu ra: In ra số lớn thứ nhất và lớn thứ 2 trong mảng
Input 01:
5
1 3 2 6 3
Output 01:
6 3
Input 02:
10
5 1 100 200 4 3 6 8 100 120
Output 02:
200 120
Xoay trái (mảng 1 chiều cơ bản)
Nộp bàiPoint: 1
Cho mảng A[] gồm N phần tử, hãy dịch các phần tử trong mảng sang trái K vị trí, khi dịch trái thì phần tử đầu tiên của dãy sẽ quay vòng lại trở thành phần tử cuối cùng.
Định dạng đầu vào:
Dòng 1 gồm N và K
Dòng 2 gõm N số của mảng A[]
Ràng buộc:
1<=N<=1000
1<=K<=1000
0<=A[i]<=100
Định dạng đầu ra: In ra mắng sau khi xoay trái
Input:
8 6
16 66 96 73 11 13 99 82
Output:
99 82 16 66 96 73 11 13
Unique (mảng 1 chiều cơ bản)
Nộp bàiPoint: 1
Cho mảng A[] gồm N phân tử, nhiệm vụ của bạn là xóa các phần tử trong mảng sao cho không có 2 phần tử liền kề có giá trị giống nhau. Ví dụ mảng A: = {1, 1, 2, 2, 2, 3, 3, 2, 1, 4} sau khi xóa sẽ được Al] = {1, 2, 3, 2, 1, 4}
Định dạng đầu vào:
Dòng 1 gồm N
Dòng 2 gồm N số của mảng A[]
Ràng buộc:
1<=N<=1000
0<=A[i]<=100
Định dạng đầu ra: In ra mảng sau khi xóa
Input:
11
2 3 3 0 0 0 3 3 3 3 4
Outptu:
2 3 0 3 4
Sereja and Dima (Codeforces)
Nộp bàiPoint: 1
Sereja và Dima chơi một trò chơi. Luật chơi rất đơn giản. Người chơi có n lá bài xếp thành một hàng. Mỗi lá bài có một số, tất cả các số trên các lá bài đều khác nhau. Người chơi lần lượt chơi, Sereja đi trước. Trong lượt chơi của mình, một người chơi có thể lấy một lá bài: lá bài ngoài cùng bên trái trong một hàng, hoặc lá bài ngoài cùng bên phải. Trò chơi kết thúc khi không còn lá bài nào nữa. Người chơi nào có tổng số lớn nhất trên các lá bài của mình vào cuối trò chơi sẽ thắng.
Sereja và Dima đang tham lam. Mỗi người đều chọn lá bài có số lớn hơn trong lượt đi của mình.
Inna là bạn của Sereja và Dima. Cô ấy biết chiến lược mà các chàng trai đang sử dụng, vì vậy cô ấy muốn xác định điểm số cuối cùng, dựa trên trạng thái ban đầu của trò chơi. Hãy giúp cô ấy.
Định dạng đầu vào: Dòng đầu tiên chứa số nguyên n (1 ≤ n ≤ 1000) — số lượng thẻ trên bàn. Dòng thứ hai chứa các số cách nhau bởi dấu cách trên các thẻ từ trái sang phải. Các số trên các thẻ là các số nguyên khác nhau từ 1 đến 1000.
Định dạng đầu ra: Trên một dòng, in ra hai số nguyên. Số đầu tiên là số điểm của Sereja khi kết thúc trò chơi, số thứ hai là số điểm của Dima khi kết thúc trò chơi.
Input 01:
4
4 1 2 10
Output 01:
12 5
Input 02:
7
1 2 3 4 5 6 7
Output 02:
16 12