trang chủ / đề bài / mochahike

Mocha và chuyến đi bộ đường dài

Đề bài

Mô tả

Thành phố có n+1 ngôi làng và 2n−1 con đường một chiều. Có hai loại đường:

  • n−1 con đường nối làng i tới làng i+1, với mọi 1≤i≤n−1.
  • n con đường được mô tả bởi dãy a1,a2,…,an: nếu ai=0 thì có đường một chiều từ làng i tới làng n+1; nếu ai=1 thì có đường một chiều từ làng n+1 tới làng i.

Hãy tìm một hành trình đi qua mỗi ngôi làng đúng một lần. Hành trình có thể bắt đầu và kết thúc ở làng bất kỳ, nhưng mỗi bước phải đi theo chiều của một con đường đã cho. Nếu không tồn tại hành trình như vậy, in ra −1.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số bộ dữ liệu. Mỗi bộ dữ liệu gồm hai dòng.
  • Dòng đầu của mỗi bộ chứa số nguyên n.
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an (mỗi ai bằng 0 hoặc 1).

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một dòng gồm n+1 số nguyên, trong đó số thứ i là ngôi làng thứ i trong hành trình. Nếu không tồn tại hành trình, in ra −1.

Nếu có nhiều đáp án đúng, in ra bất kỳ đáp án nào.

Ràng buộc

  • 1≤t≤20
  • 1≤n≤104
  • 0≤ai≤1
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 104.

Ví dụ

Input Output Giải thích
2
3
0 1 0
3
1 1 0
1 2 3 4
1 2 3 4
Bộ 1: a3=0 nên có đường 3→4, đi 1→2→3→4. Bộ 2: tương tự, a3=0 nên 1→2→3→4.
1
3
0 1 1
1 4 2 3 a1=0 cho đường 1→4 và a2=1 cho đường 4→2, nên chèn làng 4 giữa 1 và 2: 1→4→2→3.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0