Hoán đổi phần tử kề nhau

Đề bài

Mô tả

Cho một mảng a gồm n số nguyên. Mỗi số nguyên từ 1 đến n xuất hiện đúng một lần trong mảng (mảng là một hoán vị của 1,2,,n).

Với một số vị trí i (1in1), bạn được phép hoán đổi phần tử thứ i với phần tử thứ i+1; với các vị trí khác thì không được phép. Bạn có thể thực hiện thao tác hoán đổi bao nhiêu lần tùy ý, theo thứ tự bất kỳ, và không giới hạn số lần hoán đổi tại mỗi vị trí được phép.

Hỏi có thể sắp xếp mảng tăng dần bằng một dãy các thao tác hoán đổi hợp lệ hay không?

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số phần tử của mảng.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an — các phần tử của mảng.
  • Dòng thứ ba chứa một xâu gồm n1 ký tự, mỗi ký tự là 0 hoặc 1. Nếu ký tự thứ i là 1 thì được phép hoán đổi phần tử thứ i với phần tử thứ i+1 (bao nhiêu lần tùy ý), ngược lại thì không được phép.

Dữ liệu ra

In ra YES nếu có thể sắp xếp mảng tăng dần, ngược lại in ra NO.

Ràng buộc

  • 2n2·105
  • 1ain, mỗi số từ 1 đến n xuất hiện đúng một lần.

Ví dụ

Input Output Giải thích
6
1 2 5 3 4 6
01110
YES Có thể hoán đổi a3a4, rồi hoán đổi a4a5 để được mảng tăng dần.
6
1 2 5 3 4 6
01010
NO Vị trí 34 không được phép hoán đổi nên không thể đưa số 34 về đúng chỗ.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0