trang chủ / bài tập / twopaths

Gấu và hai hành trình

Đề bài

Mô tả

Vương quốc Gấu có n thành phố được đánh số từ 1 đến n, nối với nhau bởi một số con đường hai chiều. Mỗi con đường nối hai thành phố phân biệt, và không có hai con đường nào cùng nối một cặp thành phố.

Gấu Limak nhớ lại hai chuyến đi của mình:

  • Lần thứ nhất, Limak muốn đi từ thành phố a tới thành phố b. Giữa ab không có con đường trực tiếp nào, nên Limak đã đi một hành trình qua mỗi thành phố đúng một lần: một dãy v1,v2,,vn gồm n thành phố phân biệt với v1=a, vn=b, và giữa vi với vi+1 luôn có một con đường.
  • Lần thứ hai, tương tự như vậy với hai thành phố cd: giữa cd không có con đường trực tiếp, và tồn tại dãy u1,u2,,un gồm n thành phố phân biệt với u1=c, un=d, giữa ui với ui+1 luôn có một con đường.

Ngoài ra Limak cho rằng vương quốc có không quá k con đường.

Cho n, k và bốn thành phố phân biệt a, b, c, d, hãy tìm hai hành trình thoả mãn tất cả các điều kiện trên, hoặc cho biết trí nhớ của Limak là mâu thuẫn.

Tập các con đường được xét chính là hợp của các cạnh sinh ra bởi hai hành trình: (v1,v2),(v2,v3),,(vn1,vn)(u1,u2),(u2,u3),,(un1,un), tối đa 2n2 con đường. Hai cặp (x,y)(y,x) là cùng một con đường. Đáp án bị coi là sai nếu số con đường phân biệt lớn hơn k, hoặc bất kỳ điều kiện nào ở trên bị vi phạm.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nk: số thành phố và số con đường tối đa.
  • Dòng thứ hai chứa bốn số nguyên phân biệt a, b, c, d.

Dữ liệu ra

Nếu không tồn tại cấu hình nào thoả mãn, in ra 1.

Ngược lại, in ra hai dòng:

  • Dòng thứ nhất chứa n số nguyên phân biệt v1,v2,,vn với v1=avn=b.
  • Dòng thứ hai chứa n số nguyên phân biệt u1,u2,,un với u1=cun=d.

Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 4n1000
  • n1k2n2
  • 1a,b,c,dn, bốn giá trị đôi một khác nhau

Ví dụ

Input Output Giải thích
7 11
2 4 7 3
2 7 1 5 6 3 4
7 2 1 5 6 4 3
Hai hành trình sinh ra 8 con đường phân biệt: (2,7),(7,1),(1,5),(5,6),(6,3),(3,4),(2,1),(6,4). Không có con đường nào nối 2 với 4, cũng như 7 với 3, và 811.
5 5
1 2 3 4
-1 Với n=5 cần ít nhất 6 con đường, nhưng k=5.
6 7
3 1 2 4
3 2 5 6 4 1
2 3 5 6 1 4
Bảy con đường: (3,2),(2,5),(5,6),(6,4),(4,1),(3,5),(6,1), vừa đúng k=7.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0