[CPP T11 WEEKLY CONTEST 2024]. TEST 6. MẢNG 1 CHIỀU CƠ BẢN P2
[Mảng 1 Chiều Cơ Bản]. Bài 56. Cặp số có hiệu bằng k
Nộp bàiPoint: 100
Cho mảng A[] gồm N phần tử và số nguyên k, bạn hãy đếm xem trong mảng có bao nhiêu cặp số có hiệu bằng k
Đầu vào
Dòng 1 là N và k
Dòng 2 là N số viết cách nhau 1 dấu cách
Giới hạn
1≤N≤10^3
0≤A[i], k≤10^6
Đầu ra
In ra số cặp thỏa mãn
Ví dụ :
Input 01
6 2
1 3 3 2 4 4
Output 01
4
[Mảng 1 Chiều Cơ Bản]. Bài 57. Cặp số Fibonacci
Nộp bàiPoint: 100
Cho mảng A[] gồm N phần tử bạn hãy đếm xem trong mảng A[] có bao nhiêu cặp số có tổng là 1 số trong dãy số Fibonacci
Lưu ý dãy Fibonacci bắt đầu từ số 0
Đầu vào
Dòng 1 là N : số phần tử trong mảng
Dòng 2 là N số viết cách nhau 1 dấu cách
Giới hạn
1≤N≤10^3
0≤A[i] ≤10^6
Đầu ra
In ra đáp án của bài toán
Ví dụ :
Input 01
5
1 2 3 4 5
Output 01
4
[Mảng 1 Chiều Cơ Bản]. Bài 58. Cặp đôi xa cách
Nộp bàiPoint: 100
Cho mảng A[] gồm N phần tử bạn hãy tìm 2 số A[i] và A[j] trong mảng với A[i] = A[j] và i < j sao cho j - i đạt giá trị lớn nhất.
Ví dụ : A = [1, 2, 3, 1, 1, 5] thì cặp i = 0 và j = 4 là kết quả tốt nhất.
Bạn hãy tìm giá trị lớn nhất của j - i, nếu trong mảng không tồn tại cặp A[i] và A[j] (i < j) bằng nhau thì bạn hãy in ra 28tech.
Đầu vào
Dòng 1 là N : số phần tử trong mảng
Dòng 2 là N số viết cách nhau 1 dấu cách
Giới hạn
1≤N≤10^3
0≤A[i] ≤10^6
Đầu ra
In ra đáp án của bài toán
Ví dụ :
Input 01
6
1 2 3 1 1 5
Output 01
4
Input 02
5
1 2 3 4 5
Output 02
28tech
[Mảng 1 Chiều Cơ Bản]. Bài 59. Tìm kiếm trong mảng
Nộp bàiPoint: 100
Cho mảng A[], B[] gồm N phần tử và M phần tử bạn hãy xác định xem mỗi phần tử trong mảng A[] có xuất hiện trong mảng B[] hay không, nếu có in ra 1 ngược lại in ra 0.
Đầu vào
Dòng 1 là N và M
Dòng 2 là N số của mảng A[] viết cách nhau 1 dấu cách
Dòng 3 là M số của mảng B[] viết cách nhau 1 dấu cách
Giới hạn
1≤N, M≤10^5
0≤A[i] ,B[i]≤10^6
Đầu ra
In ra đáp án của bài toán
Ví dụ :
Input 01
4 4
1 2 3 6
1 1 2 5
Output 01
1 1 0 0
[Mảng 1 Chiều Cơ Bản]. Bài 61. Truy vấn phần tử khác nhau
Nộp bàiPoint: 100
Cho mảng A[] gồm N phần tử và nhiều truy vấn, mỗi truy vấn yêu cầu bạn đếm số lượng giá trị khác nhau trong đoạn từ chỉ số 0 tới chỉ số K.
Đầu vào
Dòng 1 là N : số phần tử trong mảng
Dòng 2 là N số viết cách nhau 1 dấu cách
Dòng thứ 3 là số truy vấn Q
Q dòng tiếp theo mỗi dòng là 1 số nguyên K
Giới hạn
1≤N≤10^3
0≤A[i]≤10^6
1<=Q<=10000
0<=K<=N-1
Đầu ra
Đối với truy vấn hãy in ra kết quả trên từng dòng
Ví dụ :
Input 01
6
1 2 1 2 3 1
3
2
4
5
Output 01
2
3
3
[Mảng 1 Chiều Cơ Bản]. Bài 62. Truy vấn đoạn nguyên tố
Nộp bàiPoint: 100
Cho mảng A[] gồm N phần tử và nhiều truy vấn, mỗi truy vấn yêu cầu bạn đếm số lượng phần tử trong mảng là số nguyên tố trong đoạn chỉ số [L, R]
Đầu vào
Dòng 1 là N : số phần tử trong mảng
Dòng 2 là N số viết cách nhau 1 dấu cách
Dòng thứ 3 là số truy vấn Q
Q dòng tiếp theo mỗi dòng là 2 chỉ số L, R
Giới hạn
1≤N≤10^3
0≤A[i] ≤10^6
1<=Q<=10000
0<=L<=R < N
Đầu ra
Đối với truy vấn hãy in ra kết quả trên từng dòng
Ví dụ :
Input 01
6
1 2 1 2 3 1
2
2 3
0 5
Output 01
1
3
[Mảng 1 Chiều Cơ Bản]. Bài 63. Quick search
Nộp bàiPoint: 100
Cho mảng A[], B[] gồm N, M phần tử, đối với mỗi phần tử trong mảng A[] bạn hãy xác định xem nó có xuất hiện trong mảng B[] hay không? Nếu có hãy in ra 1 ngược lại hãy in ra 0.
Đầu vào
Dòng 1 là N và M : số phần tử trong mảng A[] và B[]
Dòng 2 là N số trong mảng A[]
Dòng 3 là M số trong mảng B[]
Giới hạn
1≤N,M≤10^5
0≤A[i], B[i] ≤10^7
Đầu ra
- In ra N số tương ứng với kết quả
Ví dụ :
Input 01
4 5
1 2 3 2
2 6 8 1 1
Output 01
1 1 0 1
[Mảng 1 Chiều Cơ Bản]. Bài 64. Quick count
Nộp bàiPoint: 100
Cho mảng A[], B[] gồm N, M phần tử, đối với mỗi phần tử trong mảng A[] bạn hãy xác định xem nó xuất hiện trong mảng B[] bao nhiêu lần?
Đầu vào
Dòng 1 là N và M : số phần tử trong mảng A[] và B[]
Dòng 2 là N số trong mảng A[]
Dòng 3 là M số trong mảng B[]
Giới hạn
1≤N,M≤10^5
0≤A[i],B[i]≤10^7
Đầu ra
- In ra số lần xuất hiện của từng số
Ví dụ :
Input 01
4 5
1 2 3 2
2 6 8 1 1
Output 01
2 1 0 1
[Mảng 1 Chiều Cơ Bản]. Bài 65. Dãy số Tribonacci
Nộp bàiPoint: 100
Cho dãy số Tribonacci được định nghĩa :
F[1] = 0
F[2] = 1
F[3] = 1
F[n] = F[n - 1] + F[n - 2] + F[n - 3] với n >= 4
Một số đầu tiên trong dãy : 0 1 1 2 4 7 13...
Nhiệm vụ của bạn là hãy in ra số thứ n trong dãy số Tribonacci sau khi chia dư cho 1000000007 (10^9 + 7)
Đầu vào
Dòng 1 là số bộ test T
T dòng tiếp theo mỗi dòng là 1 số nguyên dương n
Giới hạn
1≤T≤10^5
1≤N≤10^6
Đầu ra
In ra kết quả của mỗi test trên 1 dòng
Ví dụ :
Input 01
3
3
4
1
Output 01
1
2
0
Di chuyển mảng đối xứng
Nộp bàiPoint: 100
Cho mảng A[] gồm N phần tử, 28Tech rất thích mảng đối xứng nên anh ấy muốn nhờ bạn xác định xem liệu có thể thay đổi vị trí của các phần tử trong mảng sao cho mảng trở thành đối xứng hay không ?
Ví dụ : A[] = {1, 1, 1, 1, 2, 3, 3, 2} có thể thay đổi thành mảng đối xứng là {1, 2, 1, 3, 3, 1, 2, 1}
In ra 28tech nếu có thể biến đổi mảng thành đối xứng, ngược lại in ra 29tech
Gợi ý : Mảng có chia thành đối xứng hay không thì số lần xuất hiện của các phần tử phải chẵn thì mới chia đề về 2 phía được, chỉ chấp nhận duy nhất 1 số có số lần xuất hiện lẻ, mình sẽ cho nó đứng giữa.
Thêm fast IO vào để tránh TLE vì bài này đọc ghi rất nhiều số :
ios::sync_with_stdio(false);
cin.tie(NULL);
Đầu vào
- Dòng đầu tiên là T : số bộ test
Mỗi bộ test gồm 2 dòng :
Dòng 1 là N : số phần tử trong mảng
Dòng thứ 2 gồm N số trong mảng
Giới hạn
1<=T<=100
1<=N<=10^5
0<=A[i]<=10^6
Đầu ra
In ra 28tech hoặc 29tech cho mỗi test ở trên 1 dòng
Ví dụ :
Input 01
2
5
1 2 3 1 2
3
1 2 3
Output 01
28tech
29tech