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

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

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

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

Point: 100

Cho mảng A[] gồm N phần tử bạn hãy tìm 2 số A[i]A[j] trong mảng với A[i] = A[j]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]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ài
Time limit: 1.0 / Memory limit: 256M

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

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

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

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

Point: 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à NM : số phần tử trong mảng A[]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ài
Time limit: 1.0 / Memory limit: 256M

Point: 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à NM : số phần tử trong mảng A[]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ài
Time limit: 1.0 / Memory limit: 256M

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

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