[CPP T9 WEEKLY CONTEST ]. TEST 5. MẢNG 1 CHIỀU CƠ BẢN, LÝ THUYẾT SỐ, TOÁN HỌC

[Lý Thuyết Mảng 1 Chiều]. Bài 11. Số lớn hơn và nhỏ hơn

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

Point: 100

Cho mảng A[] gồm N phần tử, đối với mỗi phần tử trong mảng bạn hãy in ra 2 số, số thứ 1 là số lượng các phần tử đứng trước phần tử này và lớn hơn nó, số thứ 2 là số lượng các phần tử đứng sau phần tử này và nhỏ hơn nó.

Ví dụ A[] = {3, 2, 1, 9, 5, 4, 3, 7, 2} thì đối với phần tử 5 ta cần in 1 và 3.


Đầ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 kết quả cho từng phần tử A[i] trong mảng trên từng dòng.


Ví dụ :

Input 01
6
8 4 5 6 1 2
Output 01
0 5
1 2
1 2
1 2
4 0
4 0

[Lý Thuyết Mảng 1 Chiều]. Bài 12. Ước chung lớn nhất của 2 số trong mảng

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 số X lớn nhất sao cho X là ước chung của ít nhất 2 phần tử trong mảng.

Ví dụ A[] = {3, 6, 9, 2, 8, 10, 27} thì số X lớn nhất chính là 9 vì nó là ước chung của 2 số 9 và 27 đồng thời có giá trị lớn nhất.


Đầ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

2≤N≤10^3

0≤A[i] ≤10^6


Đầu ra

In ra đáp án của bài toán


Ví dụ :

Input 01
3 
2 1 5
Output 01
1
Input 02
4 
4 4 10 15
Output 02
5

[Lý Thuyết Mảng 1 Chiều]. Bài 13. Lật ngược mảng không biết trước số lượng phần tử

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

Point: 100

Cho 1 loạt các số nguyên không biết trước số lượng phần tử, bạn hãy in ra các số trong input theo thứ tự ngược lại.

Hướng dẫn cách nhập các số không biết trước số lượng phần tử

int x;
while(cin >> x){
    //xử lý x nhập được
}

Bài này các bạn cần tạo 1 cái mảng, sau đó trong vòng while mỗi lần nhập được 1 số thì lưu nó vào a[n] sau đó tăng n lên, với n được khởi tạo ban đầu bằng 0. Vậy thì sau vòng while n sẽ là số lượng phần tử trong mảng luôn.


Đầu vào

Gồm nhiều dòng, mỗi dòng gồm nhiều số


Giới hạn

Các số là số int và không có quá 50000 số trong đầu vào.


Đầu ra

In ra các số được nhập trong input theo thứ tự ngược lại.


Ví dụ :

Input 01
3 
2 1 5
2 2 2 
3 3
Output 01
3 3 2 2 2 5 1 2 3

[Lý Thuyết Mảng 1 Chiều]. Bài 14. Tần suất chữ số

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ách và đếm xem mỗi chữ số của các số trong mảng A[] xuất hiện bao nhiêu lần.

Ví dụ A[] = {3333, 222, 10001, 5} thì số 0 xuất hiện 3 lần, 1 xuất hiện 2 lần, 2 xuất hiện 3 lần, 3 xuất hiện 4 lần và 5 xuất hiện 1 lần.


Đầ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^18


Đầu ra

In ra các chữ số xuất hiện trong các số trong mảng A[] theo thứ tự tăng dần, số nào không xuất hiện thì không cần phải in.


Ví dụ :

Input 01
5
2 1 5 0 1000
Output 01
0 4
1 2
2 1
5 1

[Lý Thuyết Mảng 1 Chiều]. Bài 15. Nguyên âm và phụ âm

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

Point: 100

Cho mảng A[] gồm N ký tự, bạn hãy in ra các là nguyên âm theo thứ tự xuất hiện, các phụ âm bạn cần in theo thứ tự ngược với thứ tự xuất hiện. Biết rằng nguyên âm gồm các chữ cái 'u', 'e', 'o', 'a', 'i' ở dạng in hoa hoặc in thường. Ở đây các ký tự xuất hiện có thể là chữ cái in hoa hoặc in thường, nhưng khi in ra bạn cần phải in ra ở dạng in thường. Ngoài ra nguyên âm là chữ hoa hay chữ thường thì đều được coi là nguyên âm.


Đầu vào

Dòng 1 là N : số phần tử trong mảng

Dòng 2 là N ký tự viết cách nhau 1 dấu cách


Giới hạn

1≤N≤10^3


Đầu ra

Dòng 1 in ra các nguyên âm theo thứ tự xuất hiện

Dòng 2 in ra các phụ âm theo thứ tự ngược với thứ tự xuất hiện


Ví dụ :

Input 01
10
h a i t a m T E C H
Output 01
a i a e
h c t m t h

[Tham Lam]. Bài 49. Mảng bằng nhau

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

Point: 200

28Tech định nghĩa 2 mảng bằng nhau là 2 mảng mà tích các phần tử trong 2 mảng này bằng nhau. Cho 2 mảng A[], B[] gồm N, M phần tử, bạn hãy xác định xem mảng A[], B[] có bằng nhau hay không, nếu có in 28tech, ngược lại in ra 29tech.


Đầu vào

Dòng 1 là NM

Dòng 2 gồm N số trong mảng A[]

Dòng 3 gồm M số trong mảng B[]


Giới hạn

1<=N,M<=10^5

1<=A[i],B[i]<=6.10^18


Đầu ra

In ra 28tech hoặc 29tech theo yêu cầu


Ví dụ :

Input 01
2 3
9 3
3 3 3
Output 01
28tech

Trailing zeros of array

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

Point: 200

Cho mảng A[] gồm N phần tử, gọi X là tích các phần tử trong mảng A[], bạn hãy xác định xem X có bao nhiêu chữ số 0 liên tiếp tính từ chữ số cuối cùng của X.

Ví dụ A = [2, 5, 10, 3, 1, 2], X = 600 sẽ có 2 chữ số 0 tận cùng tính từ cuối

Gợi ý : Tương tự như bài trailing zero, bạn cần phần tích thừa số nguyên tố của từng số trong mảng A[] để đếm số lần xuất hiện của số 2 và 5


Đầu vào

Dòng 1 là N

Dòng 2 gồm N số trong mảng A[]


Giới hạn

1<=N,M<=10^6

0<=A[i]<=10^6


Đầu ra

In ra đáp án của bài toán


Ví dụ :

Input 01
6
2 5 10 3 1 2
Output 01
2

Lũy thừa dãy số

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

Point: 200

Cho mảng A[]B[] đều có N phần tử, Bạn hãy tính kết quả của biểu thức (A[0]^B[0] + A[1]^B[1] + A[2]^B[2] + ... + A[N-1]^B[N-1]) % 1000000007


Đầu vào

Dòng 1 là N : số lượng phần tử trong mảng

Dòng 2 gồm N số trong mảng A[]

Dòng 3 gồm N số trong mảng B[]


Giới hạn

1<=N<=10^6

0<=A[i],B[i]<=10^9


Đầu ra

In ra kết quả của bài toán sau khi chia dư cho 1e9 + 7


Ví dụ :

Input 01
3
1 2 3
2 2 1
Output 01
8