CONTEST 60. MẢNG 1 CHIỀU CƠ BẢN
Đếm chẵn lẻ, Tổng chẵn lẻ
Nộp bàiPoint: 10
Cho mảng số nguyên ~A~ gồm ~N~ phần tử, nhiệm vụ của bạn là đếm xem trong mảng có bao nhiêu số chẵn, bao nhiêu số lẻ, tổng các phần tử là số chẵn, tổng các phần tử là số lẻ.
Input Format
- 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
Constraints
~1 \le N \le 1000; -10^3 \le A[i] \le 10^3;~
Output Format
- Dòng đầu tiên in ra số lượng số chắn.
- Dòng thứ 2 in ra số lượng số lẻ.
- Dòng thứ 3 in ra tổng các số chẵn.
- Dòng thứ 4 in ra tổng các số lẻ.
Sample Input 0
6
-711 327 372 779 451 -864
Sample Output 0
2
4
-492
846
Trung bình cộng nguyên tố
Nộp bàiPoint: 10
Cho mảng số nguyên ~A[]~ gồm ~N~ phần tử, nhiệm vụ của bạn là tính trung bình cộng của các số là số nguyên tố trong dãy. Dữ liệu đảm bảo có ít nhất 1 phần tử là số nguyên tố trong dãy.
Input Format
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
Constraints
~1 \le N \le 1000; -10^3 \le A[i] \le 10^3~;
Output Format
- In ra đáp án của bài toán lấy 3 số sau dấu phẩy.
Sample Input 0
5
-911 234 151 347 231
Sample Output 0
249.000
Sample Input 1
3
1 2 5
Sample Output 1
3.500
Số nhỏ nhất trong dãy số
Nộp bàiPoint: 10
Cho mảng số nguyên ~A~ gồm ~N~ phần tử, hãy đếm xem trong mảng của bạn có bao nhiêu số có cùng giá trị nhỏ nhất. Ví dụ mảng ~A~ = {~1, 2, 1, 3, 5~} thì số nhỏ nhất trong mảng là 1 xuất hiện 2 lần.
Input Format
- 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
Constraints
~1 \le N \le 1000~; ~-10^3 \le A[i] \le 10^3~;
Output Format
- In ra số lần xuất hiện của phần tử nhỏ nhất.
Sample Input 0
5
-854 600 222 472 207
Sample Output 0
1
Lớn hơn, nhỏ hơn
Nộp bàiPoint: 10
Cho mảng số nguyên ~A[]~ gồm N phần tử và số nguyên ~X~, hãy đếm xem trong mảng có bao nhiêu số lớn hơn X và bao nhiêu số nhỏ hơn ~X~.
Input Format
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;
Dòng thứ 3 là số nguyên ~X~.
Constraints
~1 \le N \le 1000; -10^3 \le A[i], X \le 10^3~;
Output Format
Dòng 1 in ra các số nhỏ hớn ~X~, dòng 2 in ra các số lớn hơn ~X~.
Sample Input 0
5
-798 183 434 850 555
135
Sample Output 0
1
4
In phần tử
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, nhiệm vụ của bạn là in ra các phần tử là số chẵn ở chỉ số chẵn, nếu mảng không tồn tại phần tử như vậy thì in ra "NONE".
Input Format
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;
Constraints
1<=N<=1000; -10^3<=A[i]<=10^3;
Output Format
In ra các số cách nhau một khoảng trắng hoặc in ra NONE nếu không tìm thấy số thỏa mãn điều kiện của đầu bài.
Sample Input 0
5
-971 107 458 222 200
Sample Output 0
458 200
Cặp số 1
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, hãy đếm xem trong mảng A[] tồn tại bao nhiêu cặp số A[i], A[j] với i khác j sao cho tổng của 2 phần tử này bằng số K cho trước.
Input Format
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; Dòng thứ 3 là số nguyên K
Constraints
1<=N<=1000; 0<=A[i], X<=10^3;
Output Format
In ra số lượng cặp thỏa mãn
Sample Input 0
5
1 2 3 1 2
3
Sample Output 0
4
Cặp số 2
Nộp bàiPoint: 10
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ử trong mảng.
Input Format
- 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;
Constraints
1<=N<=1000; 0<=A[i], X<=10^3;
Output Format
In ra độ chênh lệch nhỏ nhất giữa 2 phần tử bất kì trong mảng
Sample Input 0
8
69 96 93 27 84 32 78 56
Sample Output 0
3
Liệt kê các giá trị khác nhau
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, hãy liệt kê các giá trị khác nhau trong mảng theo thứ tự xuất hiện, mỗi giá trị chỉ liệt kê 1 lần. Ở thời điểm hiện tại các bạn có thể for trâu để giải bài này, sau này sẽ dùng cách tối ưu hơn.
Gợi ý : Duyệt qua từng chỉ số i của mảng, nếu kiểm tra được đây là giá trị đầu tiên mà bạn gặp thì sẽ in ra giá trị này, tức là trước đó trong đoạn từ 0 tới chỉ số i - 1 ko có giá trị nào giống A[i], ví dụ mảng A = {1, 1, 3, 1, 5, 1, 8}, khi bạn xét số 5 bạn sẽ ra nó vì trước nó ko có giá trị nào giống nó cả. Để mà kiểm tra có in ra giá trị A[i] hay không bạn làm 1 vòng for duyệt từ chỉ số 0 tới chỉ số i - 1 và kiểm tra xem có giá trị nào bằng với A[i] hay ko, nếu ko có thì hãy in ra, có thể kiểm tra bằng cách sử dụng 1 biến đánh dấu.
Input Format
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;
Constraints
1<=N<=1000; 0<=A[i], X<=10^3;
Output Format
In ra các giá trị khác nhau theo thứ tự xuất hiện, mỗi giá trị chỉ liệt kê 1 lần.
Sample Input 0
9
1 2 3 4 1 2 3 4 5
Sample Output 0
1 2 3 4 5
Tần suất
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, hãy liệt kê các giá trị xuất hiện trong mảng kèm theo tần suất tương ứng, mỗi giá trị chỉ liệt kê một lần theo thứ tự xuất hiện.
Gợi ý : Xét từng chỉ số i trong mảng, đối với mỗi chỉ số i sẽ duyệt các phần tử đứng trước nó để xem nó đã xuất hiện trước đó hay chưa, nếu chưa xuất hiện thì tiến hành duyệt các phần tử đứng sau chỉ số i và đếm xem có bao nhiêu phần tử bằng với a[i]
Input Format
- 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;
Constraints
1<=N<=1000; 0<=A[i]<=10^3;
Output Format
In ra nhiều dòng, mỗi dòng gồm giá trị kèm theo tần suất tương ứng
Sample Input 0
7
4 2 6 3 0 7 7
Sample Output 0
4 1
2 1
6 1
3 1
0 1
7 2
Sample Input 1
5
1 1 1 1 1
Sample Output 1
1 5
Liệt kê và đếm số fibonacci
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, hãy liệt kê các số trong mảng là số Fibonacci.
Input Format
Dòng đầu tiên là N : số lượng phần tử trong mảng; Dòng thứ 2 gồm N phần tử viết cách nhau một khoảng trống.
Constraints
1<=N<=10^6; 0<=A[i]<=10^18
Output Format
In ra các số là số Fibonacci trong dãy theo thứ tự xuất hiện. Nếu trong mảng không tồn tại số Fibonacci nào thì in ra "NONE".
Sample Input 0
6
1597 25358 7318 5878 0 2634
Sample Output 0
1597 0
Vị trí số lớn nhất, số nhỏ nhất
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, hãy tìm vị trí(bắt đầu từ 0) cuối cùng của giá trị nhỏ nhất trong mảng và vị trí đầu tiên của giá trị lớn nhất trong mảng. Tức là nếu có nhiều số có cùng giá trị nhỏ nhất bạn phải in ra ví trí cuối cùng, và có nhiều số có cùng giá trị lớn nhất trong mảng bạn phải in ra vị trí đầu tiên lớn nhất đó.
Input Format
- Dòng đầu tiên là N : số lượng phần tử trong mảng;
- Dòng thứ 2 gồm N phần tử viết cách nhau một khoảng trống.
Constraints
~0 \le N \le 10^6~; ~1 \le A[i] \le 10^6~
Output Format
- In trên 1 dòng 2 chỉ số mà bạn tìm được.
Sample Input 0
9
936 234 471 168 834 82 280 674 881
Sample Output 0
5 0
Tính tổng và tích các phần tử
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, hãy tính tổng, tích của các phần tử trong mảng và lấy dư với 10^9+7.
Input Format
- Dòng đầu tiên là N : số lượng phần tử trong mảng;
- Dòng thứ 2 gồm N phần tử viết cách nhau một khoảng trống.
Constraints
1<=N<=10^6; 0<=A[i]<=10^6
Output Format
- Dòng đầu tiên in ra tổng các phần tử trong mảng chia dư với 10^9 + 7;
- Dòng thứ hai in ra tích các phần tử trong mảng chia dư với 10^9 +7;
Sample Input 0
6
997893 995053 997553 996212 998316 992144
Sample Output 0
5977171
436766709
Tìm gcd của mọi phần tử
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, tìm số lớn nhất mà mọi số trong mảng đều chia hết cho số đó.
Input Format
- Dòng đầu tiên là N : số lượng phần tử trong mảng;
- Dòng thứ 2 gồm N phần tử viết cách nhau một khoảng trống.
Constraints
1<=N<=10^6; 0<=A[i]<=10^6
Output Format
In ra kết quả của bài toán
Sample Input 0
12
994626 994448 996097 995790 999692 993222 991401 999038 997163 990016 993004 990549
Sample Output 0
1
Số lớn thứ nhất và thứ hai
Nộp bàiPoint: 10
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
Input Format
- Dòng đầu tiên là N : số lượng phần tử trong mảng;
- Dòng thứ 2 gồm N phần tử viết cách nhau một khoảng trống.
Constraints
2<=N<=10^6; 0<=A[i]<=10^6
Output Format
In ra số lớn thứ nhất và lớn thứ 2 trong mảng
Sample Input 0
4
996817 993012 990914 998837
Sample Output 0
998837 996817
Liệt kê
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, hãy đếm số lượng các phần tử thỏa mãn các yêu cầu sau
Số lượng số nguyên tố trong dãy
Số lượng số thuận nghịch trong dãy
Số lượng số chính phương trong dãy
Số lượng số có tổng chữ số của nó là số nguyên tố.
Input Format
- Dòng đầu tiên là N : số lượng phần tử trong mảng;
- Dòng thứ 2 gồm N phần tử viết cách nhau một khoảng trống.
Constraints
1<=N<=100; 0<=A[i]<=10000;
Output Format
In ra 4 dòng số lượng số tương ứng với 4 yêu cầu trên
Sample Input 0
6
4 1682 5972 6331 9872 3956
Sample Output 0
0
1
1
4
Mảng đối xứng
Nộp bàiPoint: 10
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?
Input Format
- Dòng đầu tiên là N : số lượng phần tử trong mảng;
- Dòng thứ 2 gồm N phần tử viết cách nhau một khoảng trống.
Constraints
1<=N<=10^6; 0<=A[i]<=10^6
Output Format
In ra YES hoặc NO tương ứng với mảng đối xứng hoặc không.
Sample Input 0
20
870 1069 2363 375 2188 6059 6775 495 643 832 832 643 495 6775 6059 2188 375 2363 1069 870
Sample Output 0
YES
Lật ngược mảng
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, hãy lật ngược mảng A[] và in ra kết quả
Input Format
- Dòng đầu tiên là N : số lượng phần tử trong mảng;
- Dòng thứ 2 gồm N phần tử viết cách nhau một khoảng trống.
Constraints
~1 \le N \le 1000; 0 \le A[i] \le 10^3~;
Output Format
In ra mảng sau khi đã đảo ngược các phần tử
Sample Input 0
5
69 94 77 28 81
Sample Output 0
81 28 77 94 69
Lớn hơn liền kề
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, nhiệm vụ của bạn là liệt kê các phần tử trong mảng thỏa mãn nó lớn hơn cả phần tử đứng trước và phần tử đứng sau nó. 2 phần tử đầu tiên và cuối cùng của mảng không được coi là thỏa mãn.
Input Format
- 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
Constraints
~1 \le N<=1000; 0 \le A[i] \le 10^3~;
Output Format
- In ra các số thỏa mãn trên 1 dòng
Sample Input 0
7
341 607 986 616 131 857 234
Sample Output 0
986 857
Chèn 1
Nộp bàiPoint: 10
Cho mảng số nguyên ~A[]~ gồm ~N~ phần tử được đánh số từ 0 đến ~N~, nhiệm vụ của bạn là chèn phần tử ~X~ vào vị trí ~K~ trong mảng sau đó in ra mảng.
Input Format
- Dòng đầu tiên là 3 số nguyên dương ~N~, ~X~, ~K~;
- Dòng thứ 2 gồm ~N~ số nguyên viết cách nhau một vài khoảng trắng
Constraints
~0 \le K \le 1000~; ~-10^3 \le A[i] ~, ~X \le 10^3~;
Output Format
- In ra mảng sau khi chèn
Sample Input 0
8 292 5
343 473 572 525 210 2 874 318
Sample Output 0
343 473 572 525 210 292 2 874 318
Xóa mảng
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử và số nguyên X, nhiệm vụ của bạn là tìm kiếm xem X có xuất hiện trong mảng hay không, nếu X xuất hiện trong mảng thì thực hiện xóa vị trí xuất hiện đầu tiên của X trong mảng, ngược lại in ra "NOT FOUND" nếu X không xuất hiện.
Input Format
- Dòng đầu tiên là 2 số nguyên dương N, X;
- Dòng thứ 2 gồm N số nguyên viết cách nhau một vài khoảng trắng
Constraints
1<=N<=1000; -10^3<=A[i], X<=10^3;
Output Format
In ra mảng sau khi xóa hoặc in ra NOT FOUND nếu X không xuất hiện trong mảng
Sample Input 0
9 212
359 523 428 952 752 195 613 6 122
Sample Output 0
NOT FOUND
Sample Input 1
5 3
1 3 3 2 5
Sample Output 1
1 3 2 5
Mảng cộng dồn
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, nhiệm vụ của bạn là xây dựng mảng F cũng có N phần tử trong đó F[0] = A[0] và F[i] = F[i -1] + A[i] với mọi i >= 1. Như vậy bạn thử nghĩ xem F[i] lưu giá trị gì?
Input Format
- 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
Constraints
~1 \le N \le 1000; 0 \le A[i] \le 10^3~
Output Format
- In ra mảng cộng dồn F
Sample Input 0
5
124 577 658 919 87
Sample Output 0
124 701 1359 2278 2365
Cửa sổ cỡ k
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử và số nguyên K, nhiệm vụ của bạn là tìm tổng của mọi dãy con liên tiếp cỡ K của mảng A[]
Đầu vào
Dòng đầu tiên là 2 số nguyên dương N, K
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<=K<=N<=1000
0<=A[i]<=10^3
Đầu ra
In ra tổng của các dãy con K phần tử liên tiếp trong mảng
Ví dụ :
Input 01
7 5
5 9 4 5 5 8 7
Output 01
28 31 29
Mảng đánh dấu 01
Nộp bàiPoint: 10
Cho mảng số nguyên A[] gồm N phần tử, hãy đếm xem có bao nhiêu giá trị khác nhau trong mảng?
Input Format
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
Constraints
1<=N<=1000; 0<=A[i]<=10^6;
Output Format
In ra số lượng các giá trị khác nhau xuất hiện trong mảng
Sample Input 0
5
3 9 4 0 9
Sample Output 0
4
Sample Input 1
5
1 7 8 1 7
Sample Output 1
3
[Bài tập kết thúc contest] Unique
Nộp bàiPoint: 50
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}
Input Format
Dòng 1 gồm N
Dòng 2 gồm N số của mảng A[]
Constraints
1<=N<=1000
0<=A[i]<=100
Output Format
In ra mảng sau khi xóa
Sample Input 0
11
2 3 3 0 0 0 3 3 3 3 4
Sample Output 0
2 3 0 3 4