[Buổi 20][Chuỗi][HW] Bài 7: Sắp xếp lại các chữ số để được bội số của 5
Sắp xếp lại các chữ số để được bội số của 5
Bối cảnh
Bài toán được mô tả qua yêu cầu và dữ liệu dưới đây.
Yêu cầu
FullHouse Dev muốn bạn giúp anh ấy giải quyết bài toán sau:
Cho một số nguyên dương N, hãy xác định xem có thể sắp xếp lại các chữ số của N (ở dạng biểu diễn thập phân) để thu được một bội số của 5 hay không.
Ví dụ
Khi N = 108, ta có thể sắp xếp lại các chữ số để tạo ra 180 = 36 * 5, là một bội số của 5.
Input
- Dòng đầu tiên chứa một số nguyên T, số lượng test case.
- Mỗi test case gồm hai dòng:
- Dòng đầu chứa một số nguyên D, số lượng chữ số của N.
- Dòng thứ hai là một chuỗi độ dài D, biểu diễn số N ở dạng thập phân.
Output
Với mỗi test case, in ra "Yes" nếu có thể sắp xếp lại các chữ số của N để được bội số của 5. Ngược lại, in ra "No".
Ràng buộc
- \(1 ≤ T ≤ 1000\)
- \(1 ≤ D ≤ 1000\)
- \(1 ≤ N < 10^1000\)
- \(Tổng của D trong tất cả các test case ≤ 1000\)
Ví dụ 1
Input
3
3
115
3
103
3
119
Output
Yes
Yes
No
Giải thích ví dụ
- Test Case 1: Số đã cho đã chia hết cho 5, nên đáp án là Yes.
- Test Case 2: Ta có thể sắp xếp lại thành 310 = 62 * 5, nên đáp án là Yes.
- Test Case 3: Các số có thể tạo ra là {119, 191, 911}. Không số nào chia hết cho 5, nên đáp án là No.
Thông tin học tập
- Buổi: B20
- Concepts: std::string, character traversal, multiple test cases
- Giới hạn kiến thức: B01-B20
- Time limit: 2 seconds
- Memory limit: 64 MB
- Point: 20
Comments