โจทย์นี้เป็นโจทย์แบบโต้ตอบ
เราได้ซ่อนกราฟไม่มีทิศทาง $G$ ที่มีจุดยอด $n$ จุดไว้จากคุณ รับประกันว่ากราฟเชื่อมต่อกันและไม่มีเส้นเชื่อมซ้ำหรือเส้นเชื่อมวนกลับเข้าตัวเอง
คุณสามารถถามคำถามรูปแบบต่อไปนี้ได้ไม่เกิน 60 ครั้ง:
- พิจารณาสับเซต $S$ ของเซตจุดยอดทั้งหมดของ $G$ กราฟย่อยที่เหนี่ยวนำโดย $S$ มีเส้นเชื่อมกี่เส้น กล่าวอีกอย่างคือ มีเส้นเชื่อมใน $G$ กี่เส้นที่ปลายทั้งสองอยู่ใน $S$
เป้าหมายของคุณคือตรวจสอบว่ากราฟนี้มีวงจรออยเลอร์หรือไม่ วงจรออยเลอร์คือเส้นทางในกราฟที่ผ่านเส้นเชื่อมแต่ละเส้นพอดีหนึ่งครั้ง และเริ่มต้นกับสิ้นสุดที่จุดยอดเดียวกัน
โปรดทราบว่ากราฟ $G$ ถูกกำหนดไว้ก่อนเริ่มการโต้ตอบ กล่าวคือโปรแกรมโต้ตอบจะไม่ปรับกราฟตามคำถาม
ข้อมูลนำเข้า
บรรทัดแรกมีจำนวนเต็มหนึ่งจำนวน $n$ ($3 \le n \le 10^4$) ซึ่งเป็นจำนวนจุดยอดของ $G$ รับประกันว่า $G$ มีเส้นเชื่อมไม่เกิน $10^5$ เส้น เชื่อมต่อกัน และไม่มีเส้นเชื่อมซ้ำหรือเส้นเชื่อมวนกลับเข้าตัวเอง
การโต้ตอบ
เริ่มการโต้ตอบโดยอ่านบรรทัดที่มีจำนวนเต็ม $n$
หากต้องการทราบจำนวนเส้นเชื่อมในกราฟย่อยของ $G$ ที่เหนี่ยวนำโดยจุดยอด $k$ จุด $x_1,x_2,\ldots,x_k$ ให้พิมพ์บรรทัดในรูปแบบ ? k x1 x2 ... xk ($0 \le k \le n$, $1 \le x_i \le n$ และ $x_i$ ทุกค่าต่างกัน)
โปรแกรมกรรมการจะตอบกลับด้วยหนึ่งบรรทัดที่มีจำนวนเต็ม $m$ ซึ่งเป็นจำนวนเส้นเชื่อมดังกล่าว
หากคำถามของคุณไม่ถูกต้อง หรือคุณถามเกิน 60 ครั้ง โปรแกรมกรรมการจะพิมพ์ $-1$ และยุติการโต้ตอบ คุณจะได้รับผล “คำตอบผิด” โปรดยุติโปรแกรมของคุณทันทีเพื่อหลีกเลี่ยงผลตัดสินอื่น
เมื่อทราบแล้วว่ากราฟมีวงจรออยเลอร์หรือไม่ ให้พิมพ์หนึ่งบรรทัด: ! YES หากมีวงจรดังกล่าว และ ! NO หากไม่มี
หลังพิมพ์แต่ละบรรทัด อย่าลืมพิมพ์อักขระขึ้นบรรทัดใหม่และล้างบัฟเฟอร์เอาต์พุต มิฉะนั้นคุณจะได้รับผล “เกินขีดจำกัดเวลาว่าง”
ตัวอย่าง
ข้อมูลนำเข้า 1
3 1 0
ข้อมูลส่งออก 1
? 2 1 2 ? 2 1 3 ! NO
หมายเหตุ
กราฟที่ซ่อนอยู่ในตัวอย่างมีจุดยอด $3$ จุดและเส้นเชื่อม $(2,1)$ กับ $(2,3)$