Mảng con

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

Point: 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 NM

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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ỡ KN-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ố NK.

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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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