Băm xáo trộn
Nộp bài giải
Điểm:
2,00 (OI)
Giới hạn thời gian:
2.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
Ada, Algol, Assembly, Awk, C, C#, C++, D, Dart, Forth, Fortran, Go, Groovy, Java, Javascript, Kotlin, Lisp, Lua, Nim, ObjC, Pascal, Perl, PHP, Pike, Python, Racket, Ruby, Rust, Scheme, Scratch, Sed, TCL, Typescript, V, Zig
Một dịch vụ web lưu mật khẩu dưới dạng "hash" theo thuật toán sau:
- Lấy mật khẩu (gồm các chữ cái Latin in thường), hoán vị ngẫu nhiên các kí tự trong để được xâu ( có thể trùng ).
- Sinh ngẫu nhiên hai xâu chữ cái Latin in thường và (mỗi xâu có thể rỗng).
- Hash thu được là (nối xâu).
Ví dụ, với abacaba, có thể có aabcaab, zyx, kjh, dẫn tới zyxaabcaabkjh.
Cho mật khẩu và hash , hãy kiểm tra xem có thể là hash hợp lệ của hay không.
Bạn cần xử lý test độc lập.
Dữ liệu vào
- Dòng đầu chứa số nguyên () — số lượng test.
- Với mỗi test:
- Dòng thứ nhất chứa xâu khác rỗng gồm các chữ cái Latin in thường, độ dài không quá .
- Dòng thứ hai chứa xâu khác rỗng gồm các chữ cái Latin in thường, độ dài không quá .
Dữ liệu ra
Với mỗi test, in ra một dòng chứa YES nếu có thể là hash của , và NO trong trường hợp ngược lại.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 abacaba zyxaabcaabkjh onetwothree threetwoone one zzonneyy one none twenty ten |
YES YES NO YES NO |
Test 1: zyx + aabcaab + kjh, với aabcaab là một hoán vị của abacaba. Test 2: và đều rỗng, threetwoone là hoán vị của onetwothree. Test 4: n, rỗng, và trùng . |
| 2 abacaba zyxaabcaabkjh onetwothree threetwnone |
YES NO |
Test 2: trong threetwnone không có chữ o nhưng onetwothree có hai chữ o, nên không thể là hoán vị. |
Bình luận