THI THỬ TIN HỌC CƠ SỞ 2 (LẬP TRÌNH C 2025) PTIT TEST 2
[Lý Thuyết Số - Toán Học]. Bài 90. Số siêu nguyên tố
Nộp bàiPoint: 100
Một số được coi là số siêu nguyên tố nếu nó là số nguyên tố và khi bạn lần lượt bỏ các chữ số bên phải của nó đi thì nó vẫn là 1 số nguyên tố.
Ví dụ số 317 là một số siêu nguyên tố vì 317 là số nguyên tố, 31 (bỏ 7) là số nguyên tố, 3(bỏ tiếp số 1) là số nguyên tố. Hãy liệt kê những số siêu nguyên tố trong đoạn [a, b].
Đầu vào
Dòng duy nhất chứa 2 số a, b.
Giới hạn
0<=a<=b<=10^6
Đầu ra
In ra các số siêu nguyên tố trong đoạn [a, b], nếu giữa 2 số [a, b] không có số siêu nguyên tố thì in ra 28tech.
Ví dụ :
Input 01
0 1190
Output 01
2 3 5 7 23 29 31 37 53 59 71 73 79 233 239 293 311 313 317 373 379 593 599 719 733 739 797
[Comparator Lower_bound Upper_bound]. Bài 18. Đếm số cặp
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 phần tử A[i], A[j] với i khác j mà có độ chênh lệnh giữa chúng bằng K.
Gợi ý : Sort mảng A[], duyệt qua từng chỉ số i trong mảng, với mỗi chỉ số i tìm vị trí đầu tiên và vị trí cuối cùng của A[i] + K để đếm số cặp phần tử có thể kết hợp với A[i] để tạo thành cặp có chênh lệnh bằng K.
Chú ý : Trường hợp k = 0 bạn có thể đếm 1 cặp nhiều lần nếu tìm kiếm từ đầu dãy.
Đầu vào
• Dòng 1 gồm N và K
• Dòng 2 gồm N phần tử trong mảng A[]
Giới hạn
• 1<=N<=10^6
• 0<=K<=10^6
• 0<=A[i]<=10^9
Đầu ra
In ra số cặp thỏa mãn
Ví dụ :
Input 01
10 2
4 2 2 6 0 8 3 1 0 7
Output 01
9
Input 02
3 0
28 28 28
Output 02
3
[Mảng 2 Chiều]. Bài 33. Chu vi
Nộp bàiPoint: 100
Cho mảng A[][] gồm N hàng, M cột chỉ bao gồm các số 0 và 1. Bạn hãy tiến hành tính chu vi của từng vùng số 1 xuất hiện trong mảng, 2 số 1 được coi là cùng vùng với nhau nếu chúng nằm ở 2 ô chung cạnh.
Chu vi của 1 vùng số 1 sẽ là tổng độ dài các cạnh bao quanh của các ố số 1 trong vùng đó. Mỗi ô trong mảng 2 chiều là 1 hình vuông có cạnh độ dài là 1.
Xem xét ví dụ sau đây thì chu vi vùng số 1 đầu tiên sẽ là 6, vùng số 2 sẽ có chu vi là 10.
Gợi ý : Đối với mỗi (i, j) lấy 4 - x, trong đó x là số ô số 1 xung quanh chung cạnh với ô i, j thì 4 - x => số cạnh bao bên ngoài mà ô (i, j) đóng góp vào chu vi của miền
Đầu vào
• Dòng 1 là N và M
• N dòng tiếp theo mỗi dòng gồm M số 0 hoặc 1
Giới hạn
• 1<=N,M<=100
• Các phần tử trong mảng A là 0 hoặc 1
Đầu ra
In ra chu vi của từng vùng theo thứ tự xuất hiện trong mảng (từ trên xuống dưới và từ trái qua phải) cách nhau 1 dấu cách
Ví dụ :
Input 01
5 8
1 1 0 0 0 1 0 0
0 0 0 1 1 0 1 1
1 0 1 1 0 1 0 1
0 0 1 1 0 1 1 0
0 1 1 1 0 0 1 0
Output 01
6 4 16 8 4 10
[Xâu Ký Tự]. Bài 75. Xóa liền kề
Nộp bàiPoint: 100
Cho xâu ký tự S, bạn hãy xóa các ký tự liền kề giống nhau trong xâu S, sau khi xóa 2 ký tự liền kề nếu tiếp tục xuất hiện 2 ký tự liền trước và liền sau 2 ký tự vừa xóa giống nhau thì bạn cần tiếp tục xóa 2 ký tự đó. Sau đây là một số ví dụ về việc xóa kí tự liền kề :
aab => b
aaa => a
baab => Xâu rỗng
abbbba => Xâu rỗng
aaabccddd => abd
Bạn hãy in ra xâu S sau khi xóa liền kề, nếu sau khi xóa xâu trở thành rỗng thì bạn cần in ra Empty String.
Gợi ý : Duyệt từ đầu tới cuối xâu S, tạo 1 string res để lưu các ký tự của xâu đáp án. Cứ mỗi lần gặp ký tự s[i] thì check s[i] có giống kí tự cuối lưu trong xâu kết quả res thì xóa ký tự cuối đó đi, ngược lại thì thêm s[i] vào res. Bài này các bạn cũng có thể sử dụng ngăn xếp.
Đầu vào
- Dòng duy nhất chứa xâu S
Giới hạn
- 1<=len(S)<=10^5
Đầu ra
- In ra kết quả của bài toán
Ví dụ :
Input 01
abbba
Output 01
aba
Input 02
cccc
Output 02
Empty String
[Class & Object]. Bài 9. Sắp xếp lớp sinh viên 3
Nộp bàiPoint: 100
Cho danh sách sinh viên, mỗi sinh viên gồm các thông tin
Mã sinh viên
Họ Tên
Ngày Sinh
Lớp
Điểm gpa
Bạn hãy sắp xếp danh sách sinh viên này theo lớp tăng dần về từ điển, các sinh viên trong cùng một lớp sẽ được sắp xếp theo tên tăng dần về từ điển.
Trong đó khi so sánh tên để sắp xếp cần xét tên trước rồi mới tới họ và đệm.
Thông tin về tên và ngày sinh cần được chuẩn hóa về dạng chuẩn.
Đầu vào
Dòng 1 là N : số lượng sinh viên trong danh sách
5*N dòng tiêp theo mô tả thông tin của sinh viên, mỗi sinh viên gồm 5 dòng thông tin : mã, họ tên, ngày sinh, lớp, gpa
Giới hạn
1<=N<=1000
Đầu ra
In ra thông tin các sinh viên sau khi sắp xếp, gpa được in 2 số sau dấu phẩy.
Ví dụ :
Input 01
5
SV0001
NGo PHuong NHUng
11/9/2002
KHMT1
2.10
SV0002
TrAN NGOc THAng
16/6/1999
DTVT1
3.50
SV0003
NGo PHuong Trung
18/1/2000
CNTT1
2.70
SV0004
NguYEN HaI HanH
19/11/2002
DTVT1
3.10
SV0005
LE PHuong MAnh
28/9/2001
CNTT1
3.20
Output 01
SV0005 Le Phuong Manh 28/09/2001 CNTT1 3.20
SV0003 Ngo Phuong Trung 18/01/2000 CNTT1 2.70
SV0004 Nguyen Hai Hanh 19/11/2002 DTVT1 3.10
SV0002 Tran Ngoc Thang 16/06/1999 DTVT1 3.50
SV0001 Ngo Phuong Nhung 11/09/2002 KHMT1 2.10