Mảng 1 chiều 2 - Khang
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
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~; ~-10^6 <= 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
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 ướ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
Số lượng các số nhỏ nhất trong mảng
Nộp bàiPoint: 1
Cho mảng A gồm N phần tử là số nguyên, hãy tìm số nhỏ nhất trong mảng và đếm xem có bao nhiêu số là số nhỏ nhất.
Ràng buộc: 1<=N<=1000; -10^3<=A[i]<=10^18
Input:
6
3 1 2 1 4 5
Output:
1 2
Giải thích: Số 1 là số nhỏ nhất và xuất hiện 2 lần
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
Ước của phần tử đầu tiê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ử là ước của phần tử đầu tiên trong mảng. Nếu không có thì in ra NONE
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 ra các phần tử là ước của phần tử đầu tiên trong mảng trên một dòng, nếu không có thì in ra NONE
Input 01:
5
5 1 4 1 3
Output 01:
1 1
Số 1 là ước của phần tử đầu tiên là 5
Input 02:
6
1 3 5 4 6 7
Output 02:
NONE
Số 1 không có ước nào
Phần tử chẵn 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ử chẵn cuối cùng trong mảng.
(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.
In phần tử chẵn cuối cùng trong mảng kèm theo vị trí của phần tử đó, nếu số chẵn không xuất hiện thì in ra NONE
Input 01:
5
5 1 4 6 3
Output 01:
6 4
Số 6 ở vị trí 4
Input 02:
6
1 3 1 13 1 7
Output 02:
NONE
Số chẵn không xuất hiện, in ra NONE
Phần tử chẵn và lẻ đầu tiê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ử, tìm phần tử chẵn, lẻ đầ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ử chẵn và lẻ đầu tiên trong mảng kèm theo vị trí của phần tử đó. Nếu số chẵn hoặc số lẻ không xuất hiện thì in ra NONE
Input 01:
5
5 1 4 6 3
Output 01:
4 3
5 1
Số 4 ở vị trí 3 và số 5 ở vị trí 1
Input 02:
6
1 1 7 1 1 3
Output 02:
NONE
1 1
Số chẵn không xuất hiện trong mảng nên in ra NONE
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 A[] = {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
Đếm số nguyên tố cùng nhau với X
Nộp bàiPoint: 1
Nhập vào một mảng gồm n số nguyên không âm và một số nguyên không âm x, đếm số lượng số nguyên tố cùng nhau với x trong mảng và liệt kê các số đó.
Input: Dòng đầu tiên là n (1<=n<=100000) - số lượng số trong dãy
Dòng thứ hai là n số trong dãy
Dòng thứ 3 là số nguyên x
Output: Dòng đầu tiên là số lượng số nguyên tố cùng nhau với x trong mảng. Dòng thứ hai liệt kê các số nguyên tố cùng nhau với x.
Ví dụ:
Input:
10
46 2 3 4 5 6 7 8 9 10
23
Ouput:
9
2 3 4 5 6 7 8 9 10
Đoạn a và b chứa tất cả các phần tử
Nộp bàiPoint: 1
Cho mảng một chiều gồm n số nguyên dương, tìm đoạn [a,b] chứa tất cả các phần tử xuất hiện trong mảng
Ví dụ:
Input:
5
1 9 10001 25 77
Output:
1 10001