คุณได้รับสตริงที่มีดัชนีเริ่มต้นเป็น 0 ชื่อ word และจำนวนเต็ม k
ในทุกวินาที คุณต้องทำการดำเนินการต่อไปนี้:

ลบอักขระแรก k ตัวออกจาก word
เพิ่มอักขระใด ๆ k ตัวไปที่ท้ายของ word

โปรดทราบว่าคุณไม่จำเป็นต้องเพิ่มอักขระเดียวกับที่คุณได้ลบออกไป อย่างไรก็ตาม คุณต้องทำการดำเนินการทั้งสองอย่างในทุกวินาที
จงคืนเวลาขั้นต่ำที่มากกว่าศูนย์ที่ต้องการให้ word กลับไปสู่สถานะเดิม

ตัวอย่างที่ 1:

Input: word = "abacaba", k = 3
Output: 2
คำอธิบาย: ในวินาทีที่ 1 เราลบอักขระ "aba" จากคำนำของ word และเพิ่มอักขระ "bac" ไปที่ท้ายของ word ดังนั้น word จึงเท่ากับ "cababac"
ในวินาทีที่ 2 เราลบอักขระ "cab" จากคำนำของ word และเพิ่ม "aba" ไปที่ท้ายของ word ดังนั้น word จึงเท่ากับ "abacaba" และกลับไปสู่สถานะเดิม
สามารถแสดงให้เห็นได้ว่า 2 วินาทีเป็นเวลาขั้นต่ำที่มากกว่าศูนย์ที่ต้องการให้ word กลับไปสู่สถานะเดิม

ตัวอย่างที่ 2:

Input: word = "abacaba", k = 4
Output: 1
คำอธิบาย: ในวินาทีที่ 1 เราลบอักขระ "abac" จากคำนำของ word และเพิ่มอักขระ "caba" ไปที่ท้ายของ word ดังนั้น word จึงเท่ากับ "abacaba" และกลับไปสู่สถานะเดิม
สามารถแสดงให้เห็นได้ว่า 1 วินาทีเป็นเวลาขั้นต่ำที่มากกว่าศูนย์ที่ต้องการให้ word กลับไปสู่สถานะเดิม

ตัวอย่างที่ 3:

Input: word = "abcbabcd", k = 2
Output: 4
คำอธิบาย: ในทุก ๆ วินาที เราจะลบอักขระ 2 ตัวแรกออกจาก word และเพิ่มอักขระเดียวกันไปที่ท้ายของ word
หลังจาก 4 วินาที word จะเท่ากับ "abcbabcd" และกลับไปสู่สถานะเดิม
สามารถแสดงให้เห็นได้ว่า 4 วินาทีเป็นเวลาขั้นต่ำที่มากกว่าศูนย์ที่ต้องการให้ word กลับไปสู่สถานะเดิม

ข้อกำหนด:

1 <= word.length <= 50
1 <= k <= word.length
word ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น

คุณจะได้รับคำที่มีดัชนี 0 และจำนวนเต็ม k
ในทุก ๆ วินาที คุณต้องดำเนินการดังต่อไปนี้:

ลบตัวอักษร k ตัวแรกของคำ
เพิ่มตัวอักษร k ตัวลงท้ายคำ

โปรดทราบว่าคุณไม่จำเป็นต้องเพิ่มตัวอักษรตัวเดียวกับที่คุณลบออก อย่างไรก็ตาม คุณต้องดำเนินการทั้งสองอย่างในทุก ๆ วินาที
ส่งคืนเวลาขั้นต่ำที่มากกว่าศูนย์ที่จำเป็นสำหรับคำที่จะกลับไปสู่สถานะเริ่มต้น

ตัวอย่างที่ 1:

อินพุต: word = "abacaba", k = 3
เอาต์พุต: 2
คำอธิบาย: ในวินาทีที่ 1 เราลบตัวอักษร "aba" ออกจากคำนำหน้าของคำ และเพิ่มตัวอักษร "bac" ลงท้ายคำ ดังนั้น คำจึงเท่ากับ "cababac"
ในวินาทีที่ 2 เราลบตัวอักษร "cab" ออกจากคำนำหน้าของคำ และเพิ่ม "aba" ลงท้ายคำ ดังนั้น คำจึงเท่ากับ "abacaba" และกลับไปสู่สถานะเริ่มต้น จะเห็นได้ว่า 2 วินาทีคือเวลาขั้นต่ำที่มากกว่าศูนย์ที่จำเป็นสำหรับคำที่จะกลับไปสู่สถานะเริ่มต้น

ตัวอย่างที่ 2:

อินพุต: word = "abacaba", k = 4
เอาต์พุต: 1
คำอธิบาย: ในวินาทีที่ 1 เราลบตัวอักษร "abac" ออกจากคำนำหน้าของคำ และเพิ่มตัวอักษร "caba" ลงท้ายคำ ดังนั้น คำจะเท่ากับ "abacaba" และกลับไปสู่สถานะเริ่มต้น
จะเห็นได้ว่า 1 วินาทีคือเวลาขั้นต่ำที่มากกว่าศูนย์ที่จำเป็นสำหรับคำที่จะกลับไปสู่สถานะเริ่มต้น

ตัวอย่างที่ 3:

อินพุต: word = "abcbabcd", k = 2
เอาต์พุต: 4
คำอธิบาย: ในทุก ๆ วินาที เราจะลบตัวอักษร 2 ตัวแรกของคำ และเพิ่มตัวอักษรเดียวกันลงท้ายคำ
หลังจาก 4 วินาที คำจะเท่ากับ "abcbabcd" และกลับไปสู่สถานะเริ่มต้น จะเห็นได้ว่า 4 วินาทีคือเวลาขั้นต่ำที่มากกว่าศูนย์ที่จำเป็นสำหรับคำที่จะกลับไปสู่สถานะเริ่มต้น

ข้อจำกัด:

1 <= word.length <= 50
1 <= k <= word.length
คำประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น

คุณได้รับสตริงที่มีดัชนีเริ่มต้นเป็น 0 และจำนวนเต็ม kในทุกวินาที คุณต้องทำการดำเนินการต่อไปนี้:

ลบตัวอักขระแรก k ตัวออกจากคำ
เพิ่มอักขระใด ๆ k ตัวไปที่ท้ายของคำ

โปรดทราบว่าคุณไม่จำเป็นต้องเพิ่มอักขระเดียวกันกับที่คุณลบออกไป อย่างไรก็ตาม คุณต้องทำการดำเนินการทั้งสองอย่างในทุกวินาที
จงคืนเวลาขั้นต่ำที่มากกว่าศูนย์ที่ต้องการให้คำกลับไปสู่สถานะเดิม

ตัวอย่างที่ 1:

Input: word = "abacaba", k = 3
Output: 2
คำอธิบาย: ในวินาทีแรก เราลบอักขระ "aba" จากตัวอักษรต้นของคำและเพิ่มอักขระ "bac" ไปที่ท้ายของคำ ดังนั้น คำจึงเท่ากับ "cababac"
ในวินาทีที่ 2 เราลบอักขระ "cab" จากตัวอักษรต้นของคำและเพิ่ม "aba" ไปที่ท้ายของคำ ดังนั้น word จึงเท่ากับ "abacaba" และกลับไปสู่สถานะเดิม
สามารถแสดงให้เห็นได้ว่า 2 วินาทีเป็นเวลาขั้นต่ำที่มากกว่าศูนย์ที่ต้องการให้ คำกลับไปสู่สถานะเดิม

ตัวอย่างที่ 2:

Input: word = "abacaba", k = 4
Output: 1
คำอธิบาย: ในวินาทีแรก เราลบอักขระ "abac" จากคำนำหน้ของคำและเพิ่มอักขระ "caba" ไปที่ท้ายของคำ ดังนั้น คำจึงเท่ากับ "abacaba" และกลับไปสู่สถานะเดิม
สามารถแสดงให้เห็นได้ว่า 1 วินาทีเป็นเวลาขั้นต่ำที่มากกว่าศูนย์ที่ต้องการให้คำกลับไปสู่สถานะเดิม

ตัวอย่างที่ 3:

Input: word = "abcbabcd", k = 2
Output: 4
คำอธิบาย: ในทุก ๆ วินาที เราจะลบอักขระ 2 ตัวแรกออกจากคำและเพิ่มอักขระเดียวกันไปที่ท้ายของคำ
หลังจาก 4 วินาที คำจะเท่ากับ "abcbabcd" และกลับไปสู่สถานะเดิม
สามารถแสดงให้เห็นได้ว่า 4 วินาทีเป็นเวลาขั้นต่ำที่มากกว่าศูนย์ที่ต้องการให้คำกลับไปสู่สถานะเดิม

ข้อกำหนด:

1 <= word.length <= 50
1 <= k <= word.length
คำประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น


คุณจะได้รับอาร์เรย์ nums ที่มีดัชนี 0 ประกอบด้วยจำนวนเต็มบวก
ในขั้นแรก คุณสามารถเพิ่มค่าขององค์ประกอบใดๆ ในอาร์เรย์ได้ไม่เกิน 1
หลังจากนั้น คุณต้องเลือกองค์ประกอบหนึ่งองค์ประกอบหรือมากกว่านั้นจากอาร์เรย์สุดท้าย โดยที่องค์ประกอบเหล่านั้นจะเรียงต่อกันเมื่อเรียงลำดับตามลำดับที่เพิ่มขึ้น ตัวอย่างเช่น องค์ประกอบ [3, 4, 5] จะเรียงต่อกันในขณะที่ [3, 4, 6] และ [1, 1, 2, 3] จะไม่เรียงต่อกัน

ส่งคืนจำนวนสูงสุดขององค์ประกอบที่คุณสามารถเลือกได้

ตัวอย่างที่ 1:

อินพุต: nums = [2,1,5,1,1]
เอาต์พุต: 3
คำอธิบาย: เราสามารถเพิ่มองค์ประกอบที่ดัชนี 0 และ 3 ได้ อาร์เรย์ที่ได้คือ nums = [3,1,5,2,1]
เราเลือกองค์ประกอบ [3,1,5,2,1] และเรียงลำดับเพื่อให้ได้ [1,2,3] ซึ่งเรียงต่อกัน จะเห็นได้ว่าเราไม่สามารถเลือกองค์ประกอบที่ต่อเนื่องกันได้มากกว่า 3 องค์ประกอบ
ตัวอย่างที่ 2:

อินพุต: nums = [1,4,7,10]
เอาต์พุต: 1
คำอธิบาย: องค์ประกอบที่ต่อเนื่องกันสูงสุดที่เราสามารถเลือกได้คือ 1

ข้อจำกัด:

1 <= nums.length <= 10^5
1 <= nums[i] <= 10^6

คุณจะได้รับค่าอาร์เรย์ 0-ดัชนีที่ประกอบด้วยจำนวนเต็มบวก
เริ่มแรกคุณสามารถเพิ่มมูลค่าขององค์ประกอบใด ๆ ในอาร์เรย์ได้มากที่สุด 1
หลังจากนั้นคุณต้องเลือกองค์ประกอบหนึ่งอย่างน้อยหนึ่งรายการจากอาร์เรย์สุดท้ายเพื่อให้องค์ประกอบเหล่านั้นติดต่อกันเมื่อเรียงลำดับตามลำดับที่เพิ่มขึ้น ตัวอย่างเช่นองค์ประกอบ [3, 4, 5] ติดต่อกันในขณะที่ [3, 4, 6] และ [1, 1, 2, 3] ไม่ใช่
ส่งคืนจำนวนองค์ประกอบสูงสุดที่คุณสามารถเลือกได้

ตัวอย่างที่ 1:

อินพุต: NUMS = [2,1,5,1,1]
เอาท์พุท: 3
คำอธิบาย: เราสามารถเพิ่มองค์ประกอบที่ดัชนี 0 และ 3 อาร์เรย์ที่ได้คือ NUMS = [3,1,5,2,1]
เราเลือกองค์ประกอบ [3,1,5,2,1] และเราจัดเรียงให้พวกเขาได้รับ [1,2,3] ซึ่งติดต่อกัน
มันสามารถแสดงให้เห็นว่าเราไม่สามารถเลือกมากกว่า 3 องค์ประกอบติดต่อกัน
ตัวอย่างที่ 2:

อินพุต: nums = [1,4,7,10]
เอาท์พุท: 1
คำอธิบาย: องค์ประกอบต่อเนื่องสูงสุดที่เราสามารถเลือกได้คือ 1

ข้อ จำกัด :

1 <= nums.length <= 10^5
1 <= nums [i] <= 10^6

คุณจะได้รับอาร์เรย์ที่มีดัชนีเริ่มต้นที่ 0 และประกอบด้วยจำนวนเต็มบวก
ในตอนแรกคุณสามารถเพิ่มค่าขององค์ประกอบใด ๆ ในอาร์เรย์ได้มากที่สุด 1
หลังจากนั้นคุณต้องเลือกองค์ประกอบหนึ่งหรือมากกว่าจากอาร์เรย์สุดท้ายเพื่อให้องค์ประกอบเหล่านั้นติดต่อกันเมื่อเรียงลำดับตามลำดับที่เพิ่มขึ้น ตัวอย่างเช่นองค์ประกอบ [3, 4, 5] ติดต่อกันในขณะที่ [3, 4, 6] และ [1, 1, 2, 3] ไม่ใช่
ส่งคืนจำนวนองค์ประกอบสูงสุดที่คุณสามารถเลือกได้

ตัวอย่างที่ 1:

อินพุต: nums = [2,1,5,1,1]
เอาท์พุท: 3
คำอธิบาย: เราสามารถเพิ่มองค์ประกอบที่ดัชนี 0 และ 3 อาร์เรย์ที่ได้คือ nums = [3,1,5,2,1]
เราเลือกองค์ประกอบ [3,1,5,2,1] และเราจัดเรียงให้พวกเขาได้รับ [1,2,3] ซึ่งติดต่อกัน
มันสามารถแสดงให้เห็นว่าเราไม่สามารถเลือกมากกว่า 3 องค์ประกอบติดต่อกัน
ตัวอย่างที่ 2:

อินพุต: nums = [1,4,7,10]
เอาท์พุท: 1
คำอธิบาย: องค์ประกอบต่อเนื่องสูงสุดที่เราสามารถเลือกได้คือ 1

ข้อ จำกัด :

1 <= nums.length <= 10^5
1 <= nums [i] <= 10^6


คุณได้รับอาร์เรย์ของจำนวนเต็มบวก nums
คุณต้องเลือกชุดย่อยของ nums ที่ตรงตามเงื่อนไขต่อไปนี้:

คุณสามารถวางองค์ประกอบที่เลือกในอาร์เรย์ที่มีดัชนีเริ่มต้นที่ 0 โดยต้องปฏิบัติตามรูปแบบ: [x, x^2, x^4, ..., x^(k/2), x^k, x^(k/2), ..., x^4, x^2, x] (หมายเหตุว่า k สามารถเป็นพลังของ 2 ที่ไม่เป็นลบใด ๆ) ตัวอย่างเช่น [2, 4, 16, 4, 2] และ [3, 9, 3] ปฏิบัติตามรูปแบบในขณะที่ [2, 4, 8, 4, 2] ไม่ปฏิบัติตาม

คืนค่าจำนวนสูงสุดขององค์ประกอบในกลุ่มย่อยที่ตรงตามเงื่อนไขเหล่านี้

ตัวอย่างที่ 1:

Input: nums = [5,4,1,2,2]
Output: 3
คำอธิบาย: เราสามารถเลือกกลุ่มย่อย {4,2,2} ซึ่งสามารถจัดเรียงในอาร์เรย์เป็น [2,4,2] ซึ่งเป็นไปตามรูปแบบและ 2^2 == 4 ดังนั้นคำตอบคือ 3.

ตัวอย่างที่ 2:

Input: nums = [1,3,2,4]
Output: 1
คำอธิบาย: เราสามารถเลือกชุดย่อย {1} ซึ่งสามารถวางในอาร์เรย์เป็น [1] ที่ตรงตามรูปแบบ ดังนั้นคำตอบคือ 1 หมายเหตุว่าเรายังสามารถเลือกชุดย่อย {2}, {4} หรือ {3} ได้ อาจมีชุดย่อยหลายชุดที่ให้คำตอบเดียวกัน

ข้อกำหนด:

\(2 \leq nums.length \leq 10^5\)
\(1 \leq nums[i] \leq 10^9\)

คุณมีอาเรย์ของจำนวนเต็มบวก nums
คุณจำเป็นต้องเลือกเซตย่อยของ nums ที่ตรงตามเงื่อนไขดังต่อไปนี้:

คุณสามารถจัดองค์ประกอบที่เลือกไว้ในอาเรย์ที่มีการจัดทำดัชนีเริ่มต้นที่ 0 ซึ่งตรงตามรูปแบบ: \([x, x^2, x^4, ..., x^{k/2}, x^k, x^{k/2}, ..., x^4, x^2, x]\) (โปรดทราบว่า \(k\) สามารถเป็นค่ากำลังของ 2 ที่ไม่เป็นลบได้) ตัวอย่างเช่น \([2, 4, 16, 4, 2]\) และ \([3, 9, 3]\) ตรงตามรูปแบบ ในขณะที่ \([2, 4, 8, 4, 2]\) ไม่ตรงตาม

ส่งกลับจำนวนองค์ประกอบสูงสุดในเซตย่อยที่ตรงตามเงื่อนไขเหล่านี้

ตัวอย่างที่ 1:

Input: nums = [5,4,1,2,2]
Output: 3
คำอธิบาย: เราสามารถเลือกเซตย่อย {4,2,2} ซึ่งสามารถจัดในอาเรย์เป็น [2,4,2] ซึ่งตรงตามรูปแบบและ 2^2 = 4 ดังนั้นคำตอบคือ 3

ตัวอย่างที่ 2:

Input: nums = [1,3,2,4]
Output: 1
คำอธิบาย: เราสามารถเลือกเซตย่อย {1} ซึ่งสามารถจัดในอาเรย์เป็น [1] ซึ่งตรงตามรูปแบบ ดังนั้นคำตอบคือ 1 สังเกตว่าเราสามารถเลือกเซตย่อย {2}, {4} หรือ {3} ได้ด้วย อาจมีเซตย่อยหลายเซตที่ให้คำตอบเดียวกัน

ข้อกำหนด:

\(2 \leq nums.length \leq 10^5\)
\(1 \leq nums[i] \leq 10^9\)

คุณจะได้รับอาร์เรย์ของจำนวนเต็มบวก nums
คุณต้องเลือกชุดย่อยของ nums ที่ตรงตามเงื่อนไขต่อไปนี้:

คุณสามารถวางองค์ประกอบที่เลือกไว้ในอาร์เรย์ที่มีดัชนี 0 เพื่อให้เป็นไปตามรูปแบบ: [x, x^2, x^4, ..., x^k/2, x^k, x^k/2, ..., x^4, x^2, x] (โปรดทราบว่า k สามารถเป็นเลขยกกำลัง 2 ที่ไม่ติดลบใดๆ ก็ได้) ตัวอย่างเช่น [2, 4, 16, 4, 2] และ [3, 9, 3] จะเป็นไปตามรูปแบบในขณะที่ [2, 4, 8, 4, 2] จะไม่เป็นไปตามรูปแบบ

ส่งคืนจำนวนสูงสุดขององค์ประกอบในชุดย่อยที่ตรงตามเงื่อนไขเหล่านี้
ตัวอย่างที่ 1:

อินพุต: nums = [5,4,1,2,2]
เอาต์พุต: 3
คำอธิบาย: เราสามารถเลือกชุดย่อย {4,2,2} ซึ่งสามารถวางในอาร์เรย์เป็น [2,4,2] ซึ่งปฏิบัติตามรูปแบบ และ 2^2 == 4 ดังนั้นคำตอบคือ 3

ตัวอย่างที่ 2:

อินพุต: nums = [1,3,2,4]
เอาต์พุต: 1
คำอธิบาย: เราสามารถเลือกชุดย่อย {1} ซึ่งสามารถวางในอาร์เรย์เป็น [1] ซึ่งปฏิบัติตามรูปแบบ ดังนั้นคำตอบคือ 1 โปรดทราบว่าเราสามารถเลือกชุดย่อย {2}, {4} หรือ {3} ได้ด้วย อาจมีชุดย่อยหลายชุดที่ให้คำตอบเดียวกัน

ข้อจำกัด:

2 <= nums.length <= 10^5
1 <= nums[i] <= 10^9


คุณจะได้รับสตริง s
พิจารณาดำเนินการต่อไปนี้จนกว่า s จะว่างเปล่า:

สำหรับอักขระตัวอักษรทุกตัวตั้งแต่ 'a' ถึง 'z' ให้ลบอักขระตัวแรกที่ปรากฏครั้งแรกใน s (หากมีอยู่)

ตัวอย่างเช่น ให้ s = "aabcbbca" ในตอนแรก เราทำการดำเนินการต่อไปนี้:

ลบอักขระที่ขีดเส้นใต้ s = "aabcbbca" สตริงที่ได้คือ s = "abbca"
ลบอักขระที่ขีดเส้นใต้ s = "abbca" สตริงที่ได้คือ s = "ba"
ลบอักขระที่ขีดเส้นใต้ s = "ba" สตริงที่ได้คือ s = ""

คืนค่าของสตริง s ก่อนที่จะใช้การดำเนินการครั้งสุดท้าย ในตัวอย่างด้านบน คำตอบคือ "ba"

ตัวอย่างที่ 1:

อินพุต: s = "aabcbbca"
เอาต์พุต: "ba"
คำอธิบาย: อธิบายไว้ในคำสั่ง

ตัวอย่างที่ 2:

อินพุต: s = "abcd"
เอาต์พุต: "abcd"
คำอธิบาย: เราทำการดำเนินการดังต่อไปนี้:
- ลบตัวอักษรที่ขีดเส้นใต้ s = "abcd" สตริงที่ได้คือ s = ""
สตริงก่อนการดำเนินการสุดท้ายคือ "abcd"

ข้อจำกัด:

1 <= s.length <= 5 * 10^5
s ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น

คุณได้รับสตริง s
พิจารณาดำเนินการต่อไปนี้จนกว่า s จะว่างเปล่า:

สำหรับตัวอักษรทุกตัวจาก 'a' ถึง 'z' ลบการเกิดขึ้นครั้งแรกของตัวละครนั้นใน s (ถ้ามีอยู่)

ตัวอย่างเช่นให้เริ่มต้น s = "aabcbbca" เราดำเนินการต่อไปนี้:

ลบอักขระที่ขีดเส้นใต้ s = "aabcbbca" สตริงผลลัพธ์คือ s = "abbca"
ลบอักขระที่ขีดเส้นใต้ s = "abbca" สตริงผลลัพธ์คือ s = "ba"
ลบอักขระที่ขีดเส้นใต้ s = "ba" สตริงผลลัพธ์คือ S = ""

ส่งคืนค่าของสตริงก่อนการดำเนินการครั้งสุดท้าย ในตัวอย่างด้านบนคำตอบคือ "ba"

ตัวอย่างที่ 1:

อินพุต: s = "aabcbbca"
เอาท์พุท: "ba"
คำอธิบาย: ตามที่กล่าวมาแล้ว

ตัวอย่างที่ 2:

อินพุต: s = "abcd"
เอาท์พุท: "abcd"
คำอธิบาย: เราดำเนินการต่อไปนี้:
- ลบอักขระที่ขีดเส้นใต้ s = "abcd" สตริงผลลัพธ์คือ s = ""
สตริงก่อนการดำเนินการครั้งสุดท้ายคือ "abcd"

ข้อ จำกัด :

1 <= s.length <= 5 * 10^5
s ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น


คุณได้รับอาร์เรย์สตริงที่มีดัชนีเริ่มต้นเป็นศูนย์ words
ให้เรากำหนดฟังก์ชันบูลีน isPrefixAndSuffix ที่รับสตริงสองตัว str1 และ str2:

isPrefixAndSuffix(str1, str2) จะคืนค่า true หาก str1 เป็นทั้งคำนำหน้าและคำต่อท้ายของ str2 และคืนค่า false ในกรณีอื่น

ตัวอย่างเช่น isPrefixAndSuffix("aba", "ababa") เป็น true เพราะ "aba" เป็นคำนำหน้าและคำต่อท้ายของ "ababa" แต่ isPrefixAndSuffix("abc", "abcd") เป็น false
คืนค่าจำนวนเต็มที่แสดงถึงจำนวนคู่ดัชนี (i, j) ที่ i < j และ isPrefixAndSuffix(words[i], words[j]) เป็น true

ตัวอย่างที่ 1:

อินพุต: words = ["a","aba","ababa","aa"]`
เอาต์พุต: 4
คำอธิบาย: ในตัวอย่างนี้ คู่ดัชนีที่นับได้คือ:
i = 0 และ j = 1 เพราะ isPrefixAndSuffix("a", "aba") เป็น true
i = 0 และ j = 2 เพราะ isPrefixAndSuffix("a", "ababa") เป็น true
i = 0 และ j = 3 เพราะ isPrefixAndSuffix("a", "aa") เป็น true
i = 1 และ j = 2 เพราะ isPrefixAndSuffix("aba", "ababa") เป็น true
ดังนั้น คำตอบคือ 4

ตัวอย่างที่ 2:

อินพุต: words = ["pa","papa","ma","mama"]`
เอาต์พุต: 2
คำอธิบาย: ในตัวอย่างนี้ คู่ดัชนีที่นับได้คือ:
i = 0 และ j = 1 เพราะ isPrefixAndSuffix("pa", "papa") เป็น true
i = 2 และ j = 3 เพราะ isPrefixAndSuffix("ma", "mama") เป็น true
ดังนั้น คำตอบคือ 2

ตัวอย่างที่ 3:

อินพุต: words = ["abab","ab"]
เอาต์พุต: 0
คำอธิบาย: ในตัวอย่างนี้ คู่ดัชนีที่ถูกต้องเพียงคู่เดียวคือ i = 0 และ j = 1 และ isPrefixAndSuffix("abab", "ab") เป็น false
ดังนั้น คำตอบคือ 0

ข้อจำกัด:

1 <= words.length <= 50
1 <= words[i].length <= 10
words[i] ประกอบด้วยเฉพาะตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น

คุณจะได้รับอาร์เรย์สตริงที่มีดัชนีเป็น 0
มาสร้างฟังก์ชันบูลีน isPrefixAndSuffix ที่รับสตริง 2 ตัว คือ str1 และ str2 กัน

isPrefixAndSuffix(str1, str2) คืนค่า true หาก str1 เป็นทั้งคำนำหน้าและคำต่อท้ายของ str2 และคืนค่า false หากไม่ใช่

ตัวอย่างเช่น isPrefixAndSuffix("aba", "ababa") คืนค่า true เนื่องจาก "aba" เป็นคำนำหน้าและคำต่อท้ายของ "ababa" แต่ isPrefixAndSuffix("abc", "abcd") คืนค่า false
คืนค่าจำนวนเต็มที่แสดงถึงจำนวนคู่ดัชนี (i, j) โดยที่ i < j และ isPrefixAndSuffix(words[i], words[j]) คืนค่า true
ตัวอย่างที่ 1:
อินพุต: words = ["a","aba","ababa","aa"]
เอาต์พุต: 4
คำอธิบาย: ในตัวอย่างนี้ คู่ดัชนีที่นับได้คือ:
i = 0 และ j = 1 เนื่องจาก isPrefixAndSuffix("a", "aba") เป็นจริง
i = 0 และ j = 2 เนื่องจาก isPrefixAndSuffix("a", "ababa") เป็นจริง
i = 0 และ j = 3 เนื่องจาก isPrefixAndSuffix("a", "aa") เป็นจริง
i = 1 และ j = 2 เนื่องจาก isPrefixAndSuffix("aba", "ababa") เป็นจริง ดังนั้นคำตอบคือ 4
ตัวอย่างที่ 2:

อินพุต: words = ["pa","papa","ma","mama"]
เอาต์พุต: 2
คำอธิบาย: ในตัวอย่างนี้ คู่ดัชนีที่นับได้คือ:
i = 0 และ j = 1 เนื่องจาก isPrefixAndSuffix("pa", "papa") เป็นจริง
i = 2 และ j = 3 เนื่องจาก isPrefixAndSuffix("ma", "mama") เป็นจริง
ดังนั้นคำตอบคือ 2

ตัวอย่างที่ 3:

อินพุต: words = ["abab","ab"]
เอาต์พุต: 0
คำอธิบาย: ในตัวอย่างนี้ คู่ดัชนีที่ถูกต้องเพียงคู่เดียวคือ i = 0 และ j = 1 และ isPrefixAndSuffix("abab", "ab") เป็น false ดังนั้นคำตอบคือ 0

ข้อจำกัด:

1 <= words.length <= 50
1 <= words[i].length <= 10
words[i] ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น

คุณจะได้รับอาร์เรย์ของสตริงที่มีดัชนี 0
กำหนดฟังก์ชันบูลีน isPrefixAndSuffix ที่ใช้สองสตริง str1 และ str2:

isPrefixAndSuffix(str1, str2) ส่งกลับ true ถ้า str1 เป็นทั้งคำนำหน้าและคำต่อท้ายของ str2 และเป็นเท็จ มิฉะนั้น

ตัวอย่างเช่น isPrefixAndSuffix("aba", "ababa") เป็นจริงเนื่องจาก "aba" เป็นคำนำหน้าของ "ababa" และยังเป็นคำต่อท้าย แต่ isPrefixAndSuffix("abc", "abcd") เป็นเท็จ
ส่งกลับจํานวนเต็มที่แสดงถึงจํานวนคู่ดัชนี (i, j) เพื่อให้ i < j และ isPrefixAndSuffix(words[i], words[j]) เป็นจริง

ตัวอย่างที่ 1:

อินพุต: words = ["a","aba","ababa","aa"]
เอาท์พุต: 4
คําอธิบาย: ในตัวอย่างนี้ คู่ดัชนีที่นับคือ:
i = 0 และ j = 1 เนื่องจาก isPrefixAndSuffix("a", "aba") เป็นจริง
i = 0 และ j = 2 เนื่องจาก isPrefixAndSuffix("a", "ababa") เป็นจริง
i = 0 และ j = 3 เนื่องจาก isPrefixAndSuffix("a", "aa") เป็นจริง
i = 1 และ j = 2 เนื่องจาก isPrefixAndSuffix("aba", "ababa") เป็นจริง
ดังนั้นคําตอบคือ 4
ตัวอย่างที่ 2:

อินพุต: words = ["pa","papa","ma","mama"]
เอาท์พุต: 2
คําอธิบาย: ในตัวอย่างนี้ คู่ดัชนีที่นับคือ:
i = 0 และ j = 1 เนื่องจาก isPrefixAndSuffix("pa", "papa") เป็นจริง
i = 2 และ j = 3 เนื่องจาก isPrefixAndSuffix("ma", "mama") เป็นจริง
ดังนั้นคําตอบคือ 2.
ตัวอย่างที่ 3:

อินพุต: words = ["abab","ab"]
เอาท์พุต: 0
คําอธิบาย: ในตัวอย่างนี้ คู่ดัชนีที่ถูกต้องเพียงคู่เดียวคือ i = 0 และ j = 1 และ isPrefixAndSuffix("abab", "ab") เป็นเท็จ
ดังนั้นคําตอบคือ 0

ข้อจํากัด:

1 <= words.length <= 50
1 <= words[i].length <= 10
คํา[i] ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น


มดตัวหนึ่งอยู่บนขอบเขต มันบางครั้งก็ไปทางซ้ายและบางครั้งก็ไปทางขวา คุณได้รับอาร์เรย์ของจำนวนเต็มที่ไม่เป็นศูนย์ nums มดเริ่มอ่าน nums จากองค์ประกอบแรกจนถึงท้ายสุด ในแต่ละขั้นตอน มันจะเคลื่อนที่ตามค่าขององค์ประกอบปัจจุบัน:

ถ้า nums[i] < 0 มันจะเคลื่อนที่ไปทางซ้ายโดย -nums[i] หน่วย
ถ้า nums[i] > 0 มันจะเคลื่อนที่ไปทางขวาโดย nums[i] หน่วย

คืนจำนวนครั้งที่มดกลับไปยังขอบเขต
หมายเหตุ:

มีพื้นที่ไม่สิ้นสุดทั้งสองด้านของขอบเขต
เราจะตรวจสอบว่ามดอยู่ที่ขอบเขตหรือไม่หลังจากที่มันเคลื่อนที่ |nums[i]| หน่วยเท่านั้น กล่าวอีกนัยหนึ่ง หากมดข้ามขอบเขตระหว่างการเคลื่อนที่ มันจะไม่ถูกนับ

ตัวอย่างที่ 1:

Input: nums = [2,3,-5]
Output: 1
คำอธิบาย: หลังจากก้าวแรก มดอยู่ห่างจากขอบ 2 ก้าวไปทางขวา
หลังจากก้าวที่สอง มดอยู่ห่างจากขอบ 5 ก้าวไปทางขวา
หลังจากก้าวที่สาม มดอยู่บนขอบ
ดังนั้นคำตอบคือ 1.

ตัวอย่างที่ 2:

Input: nums = [3,2,-3,-4]
Output: 0
คำอธิบาย: หลังจากก้าวแรก มดอยู่ห่างจากขอบเขตไปทางขวา 3 ก้าว
หลังจากก้าวที่สอง มดอยู่ห่างจากขอบเขตไปทางขวา 5 ก้าว
หลังจากก้าวที่สาม มดอยู่ห่างจากขอบเขตไปทางขวา 2 ก้าว
หลังจากก้าวที่สี่ มดอยู่ห่างจากขอบเขตไปทางซ้าย 2 ก้าว
มดไม่เคยกลับไปที่ขอบเขตเลย ดังนั้นคำตอบคือ 0

ข้อจำกัด:

1 <= nums.length <= 100
-10 <= nums[i] <= 10
nums[i] != 0

มดอยู่บนขอบเขต บางครั้งมันไปทางซ้าย บางครั้งไปทางขวา
คุณจะได้รับอาร์เรย์ของจำนวนเต็มที่ไม่เป็นศูนย์ nums มดเริ่มอ่าน nums จากองค์ประกอบแรกจนถึงจุดสิ้นสุด ในแต่ละขั้นตอน มดจะเคลื่อนที่ตามค่าขององค์ประกอบปัจจุบัน:

ถ้า nums[i] < 0 มดจะเคลื่อนที่ไปทางซ้ายทีละ -nums[i] หน่วย

ถ้า nums[i] > 0 มดจะเคลื่อนที่ไปทางขวาทีละ nums[i] หน่วย

ส่งคืนจำนวนครั้งที่มดกลับมายังขอบเขต
หมายเหตุ:

มีพื้นที่ไม่สิ้นสุดทั้งสองด้านของขอบเขต
เราตรวจสอบว่ามดอยู่บนขอบเขตหรือไม่หลังจากที่มันเคลื่อนที่ไปแล้ว |nums[i]| หน่วย กล่าวอีกนัยหนึ่ง หากมดข้ามขอบเขตระหว่างการเคลื่อนที่ มดจะไม่นับ
ตัวอย่างที่ 1:

อินพุต: nums = [2,3,-5]
เอาต์พุต: 1
คำอธิบาย: หลังจากขั้นตอนแรก มดจะเดินไปทางขวาของขอบเขต 2 ก้าว
หลังจากขั้นตอนที่สอง มดจะเดินไปทางขวาของขอบเขต 5 ก้าว
หลังจากขั้นตอนที่สาม มดจะอยู่บนขอบเขต
ดังนั้นคำตอบคือ 1

ตัวอย่างที่ 2:

อินพุต: nums = [3,2,-3,-4]
เอาต์พุต: 0
คำอธิบาย: หลังจากขั้นตอนแรก มดจะเดินไปทางขวาของขอบเขต 3 ก้าว
หลังจากขั้นตอนที่สอง มดจะเดินไปทางขวาของขอบเขต 5 ก้าว
หลังจากขั้นตอนที่สาม มดจะเดินไปทางขวาของขอบเขต 2 ก้าว
หลังจากขั้นตอนที่สี่ มดจะเดินไปทางซ้ายของขอบเขต 2 ก้าว มดไม่เคยกลับมาที่ขอบเขต ดังนั้นคำตอบคือ 0

ข้อจำกัด:

1 <= nums.length <= 100
-10 <= nums[i] <= 10
nums[i] != 0


คุณจะได้รับสตริง s ที่มีดัชนี 0 ที่พิมพ์โดยผู้ใช้ การเปลี่ยนคีย์ถูกกำหนดให้เป็นการใช้คีย์ที่ต่างจากคีย์ที่ใช้ล่าสุด ตัวอย่างเช่น s = "ab" มีการเปลี่ยนแปลงคีย์ในขณะที่ s = "bBBb" ไม่มีการเปลี่ยนแปลงใดๆ
ส่งคืนจำนวนครั้งที่ผู้ใช้ต้องเปลี่ยนคีย์
หมายเหตุ: ตัวปรับเปลี่ยน เช่น shift หรือ caps lock จะไม่นับรวมในการเปลี่ยนคีย์ นั่นคือถ้าผู้ใช้พิมพ์ตัวอักษร 'a' แล้วตามด้วยตัวอักษร 'A' ก็จะไม่ถือเป็นการเปลี่ยนคีย์

ตัวอย่างที่ 1:

อินพุต: s = "aAbBcC"
เอาต์พุต: 2
คำอธิบาย:
ตั้งแต่ s[0] = 'a' ถึง s[1] = 'A' ไม่มีการเปลี่ยนแปลงคีย์เนื่องจากไม่นับ caps lock หรือ shift
ตั้งแต่ s[1] = 'A' ถึง s[2] = 'b' มีการเปลี่ยนแปลงคีย์ จาก s[2] = 'b' ถึง s[3] = 'B' ไม่มีการเปลี่ยนปุ่มเนื่องจากไม่นับ caps lock หรือ shift
จาก s[3] = 'B' ถึง s[4] = 'c' มีการเปลี่ยนปุ่ม
จาก s[4] = 'c' ถึง s[5] = 'C' ไม่มีการเปลี่ยนปุ่มเนื่องจากไม่นับ caps lock หรือ shift

ตัวอย่างที่ 2:

อินพุต: s = "AaAaAaaA"
เอาต์พุต: 0
คำอธิบาย: ไม่มีการเปลี่ยนปุ่มเนื่องจากกดเฉพาะตัวอักษร 'a' และ 'A' ซึ่งไม่จำเป็นต้องเปลี่ยนปุ่ม

ข้อจำกัด:

1 <= s.length <= 100
s ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเท่านั้น

คุณได้รับสตริง s ที่มีดัชนีเริ่มต้นที่ 0 ซึ่งพิมพ์โดยผู้ใช้ การเปลี่ยนแป้นพิมพ์ถูกกำหนดว่าเป็นการใช้แป้นพิมพ์ที่แตกต่างจากแป้นพิมพ์ที่ใช้ล่าสุด ตัวอย่างเช่น s = "ab" มีการเปลี่ยนแป้นพิมพ์ในขณะที่ s = "bBBb" ไม่มีการเปลี่ยนแป้นพิมพ์ใดๆ คืนค่าจำนวนครั้งที่ผู้ใช้ต้องเปลี่ยนแป้นพิมพ์
หมายเหตุ: ตัวปรับเปลี่ยนเช่น shift หรือ caps lock จะไม่ถูกนับในการเปลี่ยนแป้นพิมพ์ นั่นคือ หากผู้ใช้พิมพ์ตัวอักษร 'a' และจากนั้นพิมพ์ตัวอักษร 'A' จะไม่ถือว่าเป็นการเปลี่ยนแป้นพิมพ์

ตัวอย่างที่ 1:

Input: s = "aAbBcC"
Output: 2
คำอธิบาย:
จาก s[0] = 'a' ถึง s[1] = 'A' ไม่มีการเปลี่ยนแปลงของปุ่มเนื่องจาก caps lock หรือ shift ไม่ถูกนับ
จาก s[1] = 'A' ถึง s[2] = 'b' มีการเปลี่ยนแปลงของปุ่ม
จาก s[2] = 'b' ถึง s[3] = 'B' ไม่มีการเปลี่ยนแปลงของปุ่มเนื่องจาก caps lock หรือ shift ไม่ถูกนับ
จาก s[3] = 'B' ถึง s[4] = 'c' มีการเปลี่ยนแปลงของปุ่ม
จาก s[4] = 'c' ถึง s[5] = 'C' ไม่มีการเปลี่ยนแปลงของปุ่มเนื่องจาก caps lock หรือ shift ไม่ถูกนับ

ตัวอย่างที่ 2:

Input: s = "AaAaAaaA"
Output: 0
คำอธิบาย: ไม่มีการเปลี่ยนแป้นพิมพ์เนื่องจากมีเพียงตัวอักษร 'a' และ 'A' ที่ถูกกด ซึ่งไม่จำเป็นต้องเปลี่ยนแป้นพิมพ์

ข้อจำกัด:

1 <= s.length <= 100
s ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเท่านั้น

คุณจะได้รับสตริง s ที่มีดัชนี 0 ที่พิมพ์โดยผู้ใช้ การเปลี่ยนคีย์ถูกกำหนดให้เป็นการใช้คีย์ที่ต่างจากคีย์ที่ใช้ล่าสุด ตัวอย่างเช่น s = "ab" มีการเปลี่ยนแปลงคีย์ในขณะที่ s = "bBBb" ไม่มีการเปลี่ยนแปลง
ส่งคืนจำนวนครั้งที่ผู้ใช้ต้องเปลี่ยนคีย์

หมายเหตุ: ตัวปรับเปลี่ยน เช่น shift หรือ caps lock จะไม่นับรวมในการเปลี่ยนคีย์ นั่นคือถ้าผู้ใช้พิมพ์ตัวอักษร 'a' แล้วตามด้วยตัวอักษร 'A' ก็จะไม่ถือเป็นการเปลี่ยนคีย์

ตัวอย่างที่ 1:

อินพุต: s = "aAbBcC"
เอาต์พุต: 2
คำอธิบาย:
ตั้งแต่ s[0] = 'a' ถึง s[1] = 'A' ไม่มีการเปลี่ยนแปลงคีย์เนื่องจากไม่นับ caps lock หรือ shift
ตั้งแต่ s[1] = 'A' ถึง s[2] = 'b' มีการเปลี่ยนแปลงคีย์ จาก s[2] = 'b' ถึง s[3] = 'B' ไม่มีการเปลี่ยนแปลงคีย์เนื่องจากไม่นับ caps lock หรือ shift
จาก s[3] = 'B' ถึง s[4] = 'c' มีการเปลี่ยนปุ่ม
จาก s[4] = 'c' ถึง s[5] = 'C' ไม่มีการเปลี่ยนปุ่มเนื่องจากไม่นับ caps lock หรือ shift

ตัวอย่างที่ 2:

อินพุต: s = "AaAaAaaA"
เอาต์พุต: 0
คำอธิบาย: ไม่มีการเปลี่ยนปุ่มเนื่องจากกดเฉพาะตัวอักษร 'a' และ 'A' ซึ่งไม่จำเป็นต้องเปลี่ยนปุ่ม

ข้อจำกัด:

1 <= s.length <= 100
s ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเท่านั้น


คุณจะได้รับอาร์เรย์สตริงที่มีดัชนี 0 ซึ่งมีความยาว n และมีสตริงที่มีดัชนี 0
คุณสามารถดำเนินการต่อไปนี้ได้หลายครั้งเท่าที่ต้องการ (รวมถึงศูนย์):

เลือกจำนวนเต็ม i, j, x และ y โดยที่ 0 <= i, j < n, 0 <= x < words[i].length, 0 <= y < words[j].length และสลับอักขระ words[i][x] และ words[j][y]

ส่งคืนจำนวนเต็มที่แสดงถึงจำนวนพาลินโดรมสูงสุดที่คำสามารถมีได้ หลังจากดำเนินการบางอย่างแล้ว
หมายเหตุ: i และ j อาจเท่ากันระหว่างการดำเนินการ

ตัวอย่างที่ 1:

อินพุต: words = ["abbb","ba","aa"]
เอาต์พุต: 3
คำอธิบาย: ในตัวอย่างนี้ วิธีหนึ่งในการรับพาลินโดรมจำนวนสูงสุดคือ:

เลือก i = 0, j = 1, x = 0, y = 0 ดังนั้นเราจึงสลับระหว่าง words[0][0] และ words[1][0] คำจะกลายเป็น ["bbbb","aa","aa"]
สตริงทั้งหมดในคำเป็นพาลินโดรมแล้ว
ดังนั้น จำนวนพาลินโดรมสูงสุดที่ทำได้คือ 3
ตัวอย่างที่ 2:

อินพุต: words = ["abc","ab"]
เอาต์พุต: 2
คำอธิบาย: ในตัวอย่างนี้ วิธีหนึ่งในการรับพาลินโดรมจำนวนสูงสุดคือ:

เลือก i = 0, j = 1, x = 1, y = 0 ดังนั้นเราจึงสลับระหว่าง words[0][1] และ words[1][0] คำต่างๆ จะกลายเป็น ["aac","bb"].
เลือก i = 0, j = 0, x = 1, y = 2 ดังนั้นเราจึงสลับระหว่าง words[0][1] และ words[0][2] คำต่างๆ จะกลายเป็น ["aca","bb"].
สตริงทั้งสองเป็นพาลินโดรมแล้ว
ดังนั้น จำนวนพาลินโดรมสูงสุดที่ทำได้คือ 2

ตัวอย่างที่ 3:

อินพุต: words = ["cd","ef","a"]
เอาต์พุต: 1
คำอธิบาย: ในตัวอย่างนี้ ไม่จำเป็นต้องดำเนินการใดๆ
มีพาลินโดรมหนึ่งตัวในคำว่า "a"
จะเห็นได้ว่าเป็นไปไม่ได้ที่จะได้พาลินโดรมมากกว่าหนึ่งตัวหลังจากดำเนินการจำนวนเท่าใดก็ได้
ดังนั้น คำตอบคือ 1

ข้อจำกัด:

1 <= words.length <= 1000
1 <= words[i].length <= 100
words[i] ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น


ให้พิจารณาอาเรย์ของจำนวนเต็มที่เรียกว่า nums คุณสามารถทำการดำเนินการต่อไปนี้ได้ในขณะที่ nums มีอย่างน้อย 2 องค์ประกอบ:

เลือกสององค์ประกอบแรกของ nums และลบออก.

คะแนนของการดำเนินการคือผลรวมขององค์ประกอบที่ถูกลบออก
งานของคุณคือการหาจำนวนการดำเนินการสูงสุดที่สามารถทำได้ โดยที่การดำเนินการทั้งหมดมีคะแนนเท่ากัน
ส่งคืนจำนวนการดำเนินการสูงสุดที่เป็นไปได้ซึ่งตรงตามเงื่อนไขที่กล่าวถึงข้างต้น

ตัวอย่างที่ 1:

Input: nums = [3,2,1,4,5]
Output: 2
คำอธิบาย: เราทำการดำเนินการดังต่อไปนี้:
- ลบสององค์ประกอบแรก โดยมีคะแนน 3 + 2 = 5, nums = [1,4,5].
- ลบสององค์ประกอบแรก โดยมีคะแนน 1 + 4 = 5, nums = [5].
เราไม่สามารถดำเนินการใด ๆ เพิ่มเติมได้เนื่องจาก nums มีเพียง 1 องค์ประกอบเท่านั้น.

ตัวอย่างที่ 2:

Input: nums = [3,2,6,1,4]
Output: 1
คำอธิบาย: เราทำการดำเนินการดังต่อไปนี้:
- ลบสององค์ประกอบแรก โดยมีคะแนน 3 + 2 = 5, nums = [6,1,4].
เราไม่สามารถดำเนินการเพิ่มเติมได้เนื่องจากคะแนนของการดำเนินการถัดไปไม่เท่ากับคะแนนของการดำเนินการก่อนหน้า.

ข้อจำกัด:

2 <= nums.length <= 100
1 <= nums[i] <= 1000

เมื่อได้รับอาร์เรย์ของจำนวนเต็มที่เรียกว่า nums คุณสามารถดำเนินการต่อไปนี้ได้ในขณะที่ nums มีองค์ประกอบอย่างน้อย 2 องค์ประกอบ:

เลือกองค์ประกอบสององค์ประกอบแรกของ nums และลบองค์ประกอบเหล่านั้น

คะแนนของการดำเนินการคือผลรวมขององค์ประกอบที่ถูกลบออก
งานของคุณคือค้นหาจำนวนการดำเนินการสูงสุดที่สามารถทำได้ โดยที่การดำเนินการทั้งหมดจะมีคะแนนเท่ากัน
ส่งคืนจำนวนการดำเนินการสูงสุดที่เป็นไปได้ที่ตอบสนองเงื่อนไขที่กล่าวถึงข้างต้น

ตัวอย่างที่ 1:

อินพุต: nums = [3,2,1,4,5]
เอาต์พุต: 2
คำอธิบาย: เราดำเนินการต่อไปนี้:
- ลบองค์ประกอบสององค์ประกอบแรก โดยที่คะแนน 3 + 2 = 5, nums = [1,4,5]
- ลบองค์ประกอบสององค์ประกอบแรก โดยที่คะแนน 1 + 4 = 5, nums = [5]
เราไม่สามารถดำเนินการใดๆ เพิ่มเติมได้เนื่องจาก nums มีองค์ประกอบเพียง 1 องค์ประกอบเท่านั้น ตัวอย่างที่ 2:

อินพุต: nums = [3,2,6,1,4]
เอาต์พุต: 1
คำอธิบาย: เราดำเนินการดังต่อไปนี้:
- ลบสององค์ประกอบแรก โดยที่คะแนน 3 + 2 = 5, nums = [6,1,4]
เราไม่สามารถดำเนินการใดๆ เพิ่มเติมได้ เนื่องจากคะแนนของการดำเนินการครั้งต่อไปไม่เท่ากับครั้งก่อน

ข้อจำกัด:

2 <= nums.length <= 100
1 <= nums[i] <= 1000


คุณจะได้รับอาร์เรย์จำนวนเต็ม nums ที่มีความยาวคู่ คุณต้องแบ่งอาร์เรย์ออกเป็นสองส่วนคือ nums1 และ nums2 โดยที่:

nums1.length == nums2.length == nums.length / 2.
nums1 ควรมีองค์ประกอบที่แตกต่างกัน
nums2 ควรมีองค์ประกอบที่แตกต่างกันด้วย

คืนค่า true หากสามารถแยกอาร์เรย์ได้ และคืนค่า false หากไม่สามารถทำได้

ตัวอย่างที่ 1:

อินพุต: nums = [1,1,2,2,3,4]
เอาต์พุต: true
คำอธิบาย: วิธีที่เป็นไปได้วิธีหนึ่งในการแยก nums คือ nums1 = [1,2,3] และ nums2 = [1,2,4]

ตัวอย่างที่ 2:

อินพุต: nums = [1,1,1,1]
เอาต์พุต: false
คำอธิบาย: วิธีเดียวที่เป็นไปได้ในการแยก nums คือ nums1 = [1,1] และ nums2 = [1,1] ทั้ง nums1 และ nums2 ไม่มีองค์ประกอบที่แตกต่างกัน ดังนั้นเราจึงส่งคืนค่าเท็จ

ข้อจำกัด:

1 <= nums.length <= 100
nums.length % 2 == 0
1 <= nums[i] <= 100

คุณมีอาร์เรย์ของจำนวนเต็ม nums ที่มีความยาวเป็นเลขคู่ คุณต้องแบ่งอาร์เรย์นี้เป็นสองส่วน nums1 และ nums2 โดยที่:

nums1.length == nums2.length == nums.length / 2.
nums1 ต้องประกอบด้วยสมาชิกที่ไม่ซ้ำกัน
nums2 ก็ควรประกอบด้วยสมาชิกที่ไม่ซ้ำกันเช่นกัน

ให้คืนค่า true ถ้าสามารถแบ่งอาร์เรย์ได้ และคืนค่า false ถ้าไม่สามารถแบ่งได้

ตัวอย่างที่ 1:

Input: nums = [1,1,2,2,3,4]
Output: true
คำอธิบาย: วิธีหนึ่งที่สามารถแบ่ง nums ได้คือ nums1 = [1,2,3] และ nums2 = [1,2,4]

ตัวอย่างที่ 2:

Input: nums = [1,1,1,1]
Output: false
คำอธิบาย: วิธีการเดียวที่จะสามารถแบ่ง nums ได้คือ nums1 = [1,1] และ nums2 = [1,1] ซึ่งทั้ง nums1 และ nums2 ไม่มีสมาชิกที่ไม่ซ้ำกัน ดังนั้นเราคืนค่า false

Constraints:

1 <= nums.length <= 100
nums.length % 2 == 0
1 <= nums[i] <= 100


คุณจะได้รับอาร์เรย์สองชุดที่มีจำนวนเต็มบวก arr1 และ arr2
คำนำหน้าของจำนวนเต็มบวกคือจำนวนเต็มที่สร้างขึ้นจากตัวเลขหนึ่งตัวหรือมากกว่านั้น โดยเริ่มจากหลักซ้ายสุด ตัวอย่างเช่น 123 เป็นคำนำหน้าของจำนวนเต็ม 12345 ในขณะที่ 234 ไม่ใช่
คำนำหน้าร่วมของจำนวนเต็มสองจำนวน a และ b คือจำนวนเต็ม c โดยที่ c เป็นคำนำหน้าของทั้ง a และ b ตัวอย่างเช่น 5655359 และ 56554 มีคำนำหน้าร่วม 565 ในขณะที่ 1223 และ 43456 ไม่มีคำนำหน้าร่วม
คุณต้องค้นหาความยาวของคำนำหน้าร่วมที่ยาวที่สุดระหว่างคู่จำนวนเต็มทั้งหมด (x, y) โดยที่ x อยู่ใน arr1 และ y อยู่ใน arr2
ส่งกลับความยาวของคำนำหน้าร่วมที่ยาวที่สุดในคู่ทั้งหมด ถ้าไม่มีคำนำหน้าร่วมระหว่างคำเหล่านี้ ให้ส่งคืน 0

ตัวอย่างที่ 1:

อินพุต: arr1 = [1,10,100], arr2 = [1000]
เอาต์พุต: 3
คำอธิบาย: มี 3 คู่ (arr1[i], arr2[j]):
- คำนำหน้าร่วมที่ยาวที่สุดของ (1, 1000) คือ 1
- คำนำหน้าร่วมที่ยาวที่สุดของ (10, 1000) คือ 10
- คำนำหน้าร่วมที่ยาวที่สุดของ (100, 1000) คือ 100
คำนำหน้าร่วมที่ยาวที่สุดคือ 100 โดยมีความยาว 3

ตัวอย่างที่ 2:

อินพุต: arr1 = [1,2,3], arr2 = [4,4,4]
เอาต์พุต: 0
คำอธิบาย: ไม่มีคำนำหน้าร่วมสำหรับคู่ใดๆ (arr1[i], arr2[j]) ดังนั้นเราจึงส่งคืน 0
โปรดทราบว่าคำนำหน้าทั่วไประหว่างองค์ประกอบของอาร์เรย์เดียวกันจะไม่นับรวม

ข้อจำกัด:

1 <= arr1.length, arr2.length <= 5 * 10^4
1 <= arr1[i], arr2[i] <= 10^8

คุณได้รับสองอาร์เรย์ที่มีจำนวนเต็มบวก arr1 และ arr2
คำนำหน้าของจำนวนเต็มบวกคือจำนวนเต็มที่เกิดขึ้นจากตัวเลขหนึ่งตัวหรือมากกว่าของมันเริ่มต้นจากหลักซ้ายสุด ตัวอย่างเช่น 123 เป็นคำนำหน้าของจำนวนเต็ม 12345 ในขณะที่ 234 ไม่ใช่
คำนำหน้าทั่วไปของสองจำนวนเต็ม a และ b คือจำนวนเต็ม c ซึ่ง c เป็นคำนำหน้าของทั้ง a และ b ตัวอย่างเช่น 5655359 และ 56554 มีคำนำหน้าทั่วไป 565 ในขณะที่ 1223 และ 43456 ไม่มีคำนำหน้าทั่วไป
คุณต้องหาความยาวของคำนำหน้าทั่วไปที่ยาวที่สุดระหว่างจำนวนเต็มทั้งหมด (x, y) ซึ่ง x เป็นของ arr1 และ y เป็นของ arr2
ส่งคืนความยาวของคำนำหน้าทั่วไปที่ยาวที่สุดในทุกคู่ หากไม่มีคำนำหน้าทั่วไปอยู่ในหมู่พวกเขาให้กลับมา 0

ตัวอย่างที่ 1:

อินพุต: arr1 = [1,10,100], arr2 = [1000]
เอาท์พุท: 3
คำอธิบาย: มี 3 คู่ (arr1 [i], arr2 [j]):
- คำนำหน้าทั่วไปที่ยาวที่สุดของ (1, 1,000) คือ 1
- คำนำหน้าทั่วไปที่ยาวที่สุดของ (10, 1,000) คือ 10
- คำนำหน้าทั่วไปที่ยาวที่สุดของ (100, 1,000) คือ 100
คำนำหน้าทั่วไปที่ยาวที่สุดคือ 100 มีความยาว 3

ตัวอย่างที่ 2:

อินพุต: arr1 = [1,2,3], arr2 = [4,4,4]
เอาท์พุท: 0
คำอธิบาย: ไม่มีคำนำหน้าทั่วไปสำหรับคู่ใด ๆ (arr1 [i], arr2 [j]) ดังนั้นเราจึงกลับมา 0
โปรดทราบว่าคำนำหน้าทั่วไประหว่างองค์ประกอบของอาร์เรย์เดียวกันจะไม่นับ

ข้อ จำกัด :

1 <= arr1.length, arr2.length <= 5 * 10^4
1 <= arr1 [i], arr2 [i] <= 10^8

คุณได้รับอาเรย์สองชุดที่มีจำนวนเต็มบวก arr1 และ arr2
คำว่า "prefix" ของจำนวนเต็มบวกคือจำนวนเต็มที่เกิดจากการใช้หนึ่งหรือมากกว่าหมายเลขของมัน โดยเริ่มจากหลักซ้ายสุดของมัน ตัวอย่างเช่น 123 เป็น prefix ของจำนวนเต็ม 12345 ในขณะที่ 234 ไม่ใช่.
คำว่า "common prefix" ของจำนวนเต็มสองจำนวน a และ b คือจำนวนเต็ม c ซึ่ง c เป็นส่วนต้นของทั้ง a และ b ตัวอย่างเช่น 5655359 และ 56554 มีส่วนต้นร่วมคือ 565 ในขณะที่ 1223 และ 43456 ไม่มีส่วนต้นร่วม
คุณต้องหาความยาวของพรีฟิกซ์ที่เหมือนกันที่ยาวที่สุดระหว่างคู่ของจำนวนเต็ม (x, y) โดยที่ x อยู่ใน arr1 และ y อยู่ใน arr2
คืนค่าความยาวของพรีฟิกที่เป็นส่วนร่วมที่ยาวที่สุดในหมู่คู่ทั้งหมด หากไม่มีพรีฟิกที่เป็นส่วนร่วมอยู่เลย ให้คืนค่า 0

ตัวอย่างที่ 1:

Input: arr1 = [1,10,100], arr2 = [1000]
Output: 3
คำอธิบาย: มี 3 คู่ (arr1[i], arr2[j]):
- คำนำหน้าที่เหมือนกันที่ยาวที่สุดของ (1, 1000) คือ 1.
- คำนำหน้าที่เหมือนกันที่ยาวที่สุดของ (10, 1000) คือ 10.
- คำนำหน้าที่เหมือนกันที่ยาวที่สุดของ (100, 1000) คือ 100.
คำนำหน้าที่เหมือนกันที่ยาวที่สุดคือ 100 โดยมีความยาว 3.

ตัวอย่างที่ 2:

Input: arr1 = [1,2,3], arr2 = [4,4,4]
Output: 0
คำอธิบาย: ไม่มีพรีฟิกทั่วไปสำหรับคู่ใด ๆ (arr1[i], arr2[j]) ดังนั้นเราจึงคืนค่า 0
โปรดทราบว่าพรีฟิกทั่วไประหว่างสมาชิกของอาเรย์เดียวกันจะไม่นับรวม

ข้อจำกัด:

1 <= arr1.length, arr2.length <= 5 * 10^4
1 <= arr1[i], arr2[i] <= 10^8


คุณได้รับอาร์เรย์จำนวนเต็ม nums ซึ่งใช้ดัชนีเริ่มต้นที่ 0 และจำนวนเต็ม k

ในการดำเนินการหนึ่งครั้ง คุณสามารถลบหนึ่งกรณีของตัวเลขที่เล็กที่สุดใน nums ได้

จงคืนจำนวนการดำเนินการขั้นต่ำที่จำเป็นเพื่อให้ทุกองค์ประกอบในอาร์เรย์มีค่ามากกว่าหรือเท่ากับ k

ตัวอย่างที่ 1:

อินพุต: nums = [2,11,10,1,3], k = 10
เอาต์พุต: 3
คำอธิบาย: หลังจากการดำเนินการหนึ่งครั้ง, nums กลายเป็น [2, 11, 10, 3]

หลังจากการดำเนินการสองครั้ง, nums กลายเป็น [11, 10, 3]

หลังจากการดำเนินการสามครั้ง, nums กลายเป็น [11, 10]

ในขั้นตอนนี้, องค์ประกอบทั้งหมดของ nums มีค่ามากกว่าหรือเท่ากับ 10 ดังนั้นเราสามารถหยุดได้

สามารถแสดงได้ว่าจำนวนการดำเนินการ 3 คือจำนวนขั้นต่ำที่ต้องการเพื่อให้ทุกองค์ประกอบในอาร์เรย์มีค่ามากกว่าหรือเท่ากับ 10

ตัวอย่างที่ 2:

อินพุต: nums = [1,1,2,4,9], k = 1
เอาต์พุต: 0
คำอธิบาย: ทุกองค์ประกอบในอาร์เรย์มีค่ามากกว่าหรือเท่ากับ 1 ดังนั้นเราไม่จำเป็นต้องทำการดำเนินการใดๆ กับ nums

ตัวอย่างที่ 3:

อินพุต: nums = [1,1,2,4,9], k = 9
เอาต์พุต: 4
คำอธิบาย: มีเพียงองค์ประกอบเดียวของ nums ที่มีค่ามากกว่าหรือเท่ากับ 9 ดังนั้นเราต้องทำการดำเนินการ 4 ครั้งกับ nums

ข้อจำกัด:

1 <= nums.length <= 50

1 <= nums[i] <= 10^9

1 <= k <= 10^9

อินพุตถูกสร้างขึ้นเพื่อให้มีอย่างน้อยหนึ่งดัชนี i ที่ nums[i] >= k

คุณได้รับอาเรย์จำนวนเต็ม nums ที่มีดัชนีเริ่มต้นที่ 0 และจำนวนเต็ม k
ในหนึ่งการดำเนินการ คุณสามารถลบการเกิดขึ้นหนึ่งครั้งขององค์ประกอบที่เล็กที่สุดใน nums
ส่งคืนจำนวนการดำเนินการขั้นต่ำที่จำเป็นเพื่อให้ทุกองค์ประกอบในอาเรย์มีค่ามากกว่าหรือเท่ากับ k

ตัวอย่างที่ 1:

Input: nums = [2,11,10,1,3], k = 10
Output: 3
คำอธิบาย: หลังจากการดำเนินการครั้งแรก nums จะมีค่าเท่ากับ [2, 11, 10, 3]
หลังจากการดำเนินการครั้งที่สอง nums จะมีค่าเท่ากับ [11, 10, 3]
หลังจากการดำเนินการครั้งที่สาม nums จะมีค่าเท่ากับ [11, 10]
ในขั้นตอนนี้ ทุกองค์ประกอบของ nums มีค่ามากกว่าหรือเท่ากับ 10 ดังนั้นเราสามารถหยุดได้
สามารถแสดงให้เห็นว่า 3 เป็นจำนวนการดำเนินการขั้นต่ำที่จำเป็นเพื่อให้ทุกองค์ประกอบของอาร์เรย์มีค่ามากกว่าหรือเท่ากับ 10

ตัวอย่างที่ 2:

Input: nums = [1,1,2,4,9], k = 1
Output: 0
คำอธิบาย: ทุกองค์ประกอบของอาร์เรย์มีค่ามากกว่าหรือเท่ากับ 1 ดังนั้นเราจึงไม่จำเป็นต้องดำเนินการใด ๆ กับ nums.

ตัวอย่างที่ 3:

Input: nums = [1,1,2,4,9], k = 9
Output: 4
คำอธิบาย: มีเพียงองค์ประกอบเดียวใน nums ที่มีค่ามากกว่าหรือเท่ากับ 9 ดังนั้นเราจึงต้องทำการดำเนินการ 4 ครั้งกับ nums.

ข้อจำกัด:

1 <= nums.length <= 50

1 <= nums[i] <= 10^9

1 <= k <= 10^9

ข้อมูลนำเข้าถูกสร้างขึ้นเพื่อให้มีอย่างน้อยหนึ่งดัชนี i ที่ทำให้ nums[i] >= k.

คุณจะได้รับอาร์เรย์จำนวนเต็ม 0 ที่ถูกจัดทำดัชนีและจำนวนเต็ม k
ในการดำเนินการหนึ่งครั้ง คุณสามารถลบหนึ่งกรณีของตัวเลขที่เล็กที่สุดใน nums ได้
ส่งคืนจำนวนขั้นต่ำของการดำเนินการที่จำเป็นเพื่อให้องค์ประกอบทั้งหมดของอาร์เรย์มีค่ามากกว่าหรือเท่ากับ k

ตัวอย่างที่ 1:

อินพุต: nums = [2,11,10,1,3], k = 10
เอาท์พุท: 3
คำอธิบาย: หลังจากการดำเนินการหนึ่งครั้ง nums จะเท่ากับ [2, 11, 10, 3]
หลังจากการดำเนินการสองครั้ง nums จะเท่ากับ [11, 10, 3]
หลังจากการดำเนินการสามครั้ง nums จะเท่ากับ [11, 10]
ในขั้นตอนนี้องค์ประกอบทั้งหมดของ nums จะมากกว่าหรือเท่ากับ 10 เพื่อให้เราสามารถหยุดได้
มันสามารถแสดงให้เห็นว่า 3 คือจำนวนขั้นต่ำของการดำเนินการที่จำเป็นเพื่อให้องค์ประกอบทั้งหมดของอาร์เรย์มากกว่าหรือเท่ากับ 10

ตัวอย่างที่ 2:

อินพุต: nums = [1,1,2,4,9], k = 1
เอาท์พุท: 0
คำอธิบาย: องค์ประกอบทั้งหมดของอาร์เรย์มีค่ามากกว่าหรือเท่ากับ 1 ดังนั้นเราไม่จำเป็นต้องใช้การดำเนินการใด ๆ กับ NUMS
ตัวอย่างที่ 3:

อินพุต: nums = [1,1,2,4,9], k = 9
เอาท์พุท: 4
คำอธิบาย: เพียงองค์ประกอบเดียวของ nums มากกว่าหรือเท่ากับ 9 ดังนั้นเราจำเป็นต้องใช้การดำเนินการ 4 ครั้งใน NUMS

ข้อ จำกัด :

1 <= nums.length <= 50
1 <= nums [i] <= 10^9
1 <= k <= 10^9
อินพุตถูกสร้างขึ้นเพื่อให้มีดัชนีอย่างน้อยหนึ่งดัชนีที่ nums [i]> = k


คุณได้รับอาร์เรย์ที่ใช้ดัชนีเริ่มจาก 1 ของจำนวนเต็มที่แตกต่างกัน nums ที่มีความยาว n
คุณต้องกระจายองค์ประกอบทั้งหมดของ nums ระหว่างสองอาร์เรย์ arr1 และ arr2 โดยใช้การดำเนินการ n ครั้ง ในการดำเนินการครั้งแรก ให้ต่อ nums[1] เข้ากับ arr1 ในการดำเนินการครั้งที่สอง ให้ต่อ nums[2] เข้ากับ arr2 หลังจากนั้น ในการดำเนินการครั้งที่ i:

ถ้าองค์ประกอบสุดท้ายของ arr1 มีค่ามากกว่าองค์ประกอบสุดท้ายของ arr2 ให้ต่อ nums[i] เข้ากับ arr1 มิเช่นนั้นให้ต่อ nums[i] เข้ากับ arr2

อาร์เรย์ result ถูกสร้างขึ้นโดยการเชื่อม arr1 และ arr2 เข้าด้วยกัน ตัวอย่างเช่น ถ้า arr1 == [1,2,3] และ arr2 == [4,5,6] ดังนั้น result = [1,2,3,4,5,6] ส่งคืนอาร์เรย์ result

ตัวอย่างที่ 1:

Input: nums = [2,1,3]
Output: [2,3,1] คำอธิบาย: หลังจากทำการดำเนินการครั้งแรก 2 ครั้ง arr1 = [2] และ arr2 = [1]
ในการดำเนินการครั้งที่ 3 เนื่องจากองค์ประกอบสุดท้ายของ arr1 มากกว่าองค์ประกอบสุดท้ายของ arr2 (2 > 1) ให้ต่อ nums[3] เข้ากับ arr1
หลังจาก 3 การดำเนินการ arr1 = [2,3] และ arr2 = [1]
ดังนั้นอาร์เรย์ result ที่เกิดจากการเชื่อมต่อคือ [2,3,1]

ตัวอย่างที่ 2:

Input: nums = [5,4,3,8]
Output: [5,3,4,8]
คำอธิบาย: หลังจากทำการดำเนินการครั้งแรก 2 ครั้ง arr1 = [5] และ arr2 = [4]
ในการดำเนินการครั้งที่ 3 เนื่องจากองค์ประกอบสุดท้ายของ arr1 มากกว่าองค์ประกอบสุดท้ายของ arr2 (5 > 4) ให้ต่อ nums[3] เข้ากับ arr1 ดังนั้น arr1 กลายเป็น [5,3]
ในการดำเนินการครั้งที่ 4 เนื่องจากองค์ประกอบสุดท้ายของ arr2 มากกว่าองค์ประกอบสุดท้ายของ arr1 (4 > 3) ให้ต่อ nums[4] เข้ากับ arr2 ดังนั้น arr2 กลายเป็น [4,8]
หลังจาก 4 การดำเนินการ arr1 = [5,3] และ arr2 = [4,8]
ดังนั้นอาร์เรย์ result ที่เกิดจากการเชื่อมต่อคือ [5,3,4,8]

ข้อจำกัด:

3 <= n <= 50
1 <= nums[i] <= 100
องค์ประกอบทั้งหมดใน nums เป็นเอกลักษณ์

คุณจะได้รับอาร์เรย์ที่มีดัชนี 1 ของจำนวนเต็ม nums ที่มีความยาว n
คุณต้องกระจายองค์ประกอบทั้งหมดของ nums ระหว่างอาร์เรย์ arr1 และ arr2 สองอาร์เรย์โดยใช้การดำเนินการ n ในการดำเนินการครั้งแรก ให้ผนวก nums[1] เข้ากับ arr1 ในการดำเนินการครั้งที่สอง ให้ผนวก nums[2] เข้ากับ arr2 หลังจากนั้น ในการดำเนินการครั้งที่ i^:

หากองค์ประกอบสุดท้ายของ arr1 มากกว่าองค์ประกอบสุดท้ายของ arr2 ให้ผนวก nums[i] เข้ากับ arr1 มิฉะนั้น ให้ผนวก nums[i] เข้ากับ arr2

ผลลัพธ์ของอาร์เรย์จะสร้างขึ้นโดยการต่ออาร์เรย์ arr1 และ arr2 ตัวอย่างเช่น หาก arr1 == [1,2,3] และ arr2 == [4,5,6] ผลลัพธ์ = [1,2,3,4,5,6]
ส่งคืนผลลัพธ์ของอาร์เรย์

ตัวอย่างที่ 1:

อินพุต: nums = [2,1,3]
เอาต์พุต: [2,3,1]
คำอธิบาย: หลังจากดำเนินการ 2 ครั้งแรกแล้ว arr1 = [2] และ arr2 = [1]
ในการดำเนินการครั้งที่ 3 เนื่องจากองค์ประกอบสุดท้ายของ arr1 มากกว่าองค์ประกอบสุดท้ายของ arr2 (2 > 1) ให้เพิ่ม nums[3] ลงใน arr1
หลังจากดำเนินการ 3 ครั้งแล้ว arr1 = [2,3] และ arr2 = [1]
ดังนั้น ผลลัพธ์ของอาร์เรย์ที่เกิดจากการต่อกันคือ [2,3,1]

ตัวอย่างที่ 2:

อินพุต: nums = [5,4,3,8]
เอาต์พุต: [5,3,4,8]
คำอธิบาย: หลังจากดำเนินการ 2 ครั้งแรกแล้ว arr1 = [5] และ arr2 = [4] ในการดำเนินการครั้งที่ 3 เนื่องจากองค์ประกอบสุดท้ายของ arr1 มากกว่าองค์ประกอบสุดท้ายของ arr2 (5 > 4) ให้ผนวก nums[3] เข้ากับ arr1 ดังนั้น arr1 จึงกลายเป็น [5,3]
ในการดำเนินการครั้งที่ 4 เนื่องจากองค์ประกอบสุดท้ายของ arr2 มากกว่าองค์ประกอบสุดท้ายของ arr1 (4 > 3) ให้ผนวก nums[4] เข้ากับ arr2 ดังนั้น arr2 จึงกลายเป็น [4,8]
หลังจากดำเนินการ 4 ครั้ง arr1 = [5,3] และ arr2 = [4,8]
ดังนั้น ผลลัพธ์ของอาร์เรย์ที่สร้างจากการต่อกันคือ [5,3,4,8]

ข้อจำกัด:

3 <= n <= 50
1 <= nums[i] <= 100
องค์ประกอบทั้งหมดใน nums จะแยกจากกัน

คุณจะได้รับอาร์เรย์ที่มีดัชนี 1 ของจํานวนเต็มที่แตกต่างกัน nums ที่มีความยาว n
คุณต้องกระจายองค์ประกอบทั้งหมดของ nums ระหว่างสองอาร์เรย์ arr1 และ arr2 โดยใช้การดําเนินการ n ในการดําเนินการครั้งแรก ให้ผนวก nums[1] ไปยัง arr1 ในการดําเนินการที่สอง ให้ผนวก nums[2] ไปยัง arr2 หลังจากนั้นในการดําเนินการ i^th:

หากองค์ประกอบสุดท้ายของ arr1 มากกว่าองค์ประกอบสุดท้ายของ arr2 ให้ผนวก nums[i] ลงใน arr1 มิฉะนั้น ให้ต่อท้าย nums[i] กับ arr2

ผลลัพธ์ของอาร์เรย์เกิดจากการต่ออาร์เรย์ arr1 และ arr2 ตัวอย่างเช่น ถ้า arr1 == [1,2,3] และ arr2 == [4,5,6] ผลลัพธ์ = [1,2,3,4,5,6]
ส่งกลับผลลัพธ์อาร์เรย์

ตัวอย่างที่ 1:

อินพุต: nums = [2,1,3]
เอาต์พุต: [2,3,1]
คําอธิบาย: หลังจากการดําเนินการ 2 ครั้งแรก arr1 = [2] และ arr2 = [1]
ในการดําเนินการที่ 3^rd เนื่องจากองค์ประกอบสุดท้ายของ arr1 มากกว่าองค์ประกอบสุดท้ายของ arr2 (2 > 1) ให้ต่อท้าย nums[3] ให้กับ arr1
หลังจากดําเนินการ 3 ครั้ง arr1 = [2,3] และ arr2 = [1]
ดังนั้นผลลัพธ์อาร์เรย์ที่เกิดจากการต่อกันคือ [2,3,1]

ตัวอย่างที่ 2:

อินพุต: nums = [5,4,3,8]
เอาท์พุต: [5,3,4,8]
คําอธิบาย: หลังจากการดําเนินการ 2 ครั้งแรก arr1 = [5] และ arr2 = [4]
ในการดําเนินการที่ 3^เนื่องจากองค์ประกอบสุดท้ายของ arr1 มากกว่าองค์ประกอบสุดท้ายของ arr2 (5 > 4) ให้ผนวก nums[3] เข้ากับ arr1 ดังนั้น arr1 จึงกลายเป็น [5,3]
ในการดําเนินการที่ 4^เนื่องจากองค์ประกอบสุดท้ายของ arr2 มากกว่าองค์ประกอบสุดท้ายของ arr1 (4 > 3) ให้ผนวก nums[4] กับ arr2 ดังนั้น arr2 จึงกลายเป็น [4,8]
หลังจากดําเนินการ 4 ครั้ง arr1 = [5,3] และ arr2 = [4,8]
ดังนั้นผลลัพธ์อาร์เรย์ที่เกิดจากการต่อกันคือ [5,3,4,8]

ข้อจํากัด:

3 <= n <= 50
1 <= nums[i] <= 100
องค์ประกอบทั้งหมดในตัวเลขแตกต่างกัน


ทาคาฮาชิและอาโอกิเล่นเกม N เกม
คุณจะได้รับสตริง S ที่มีความยาว N ซึ่งแสดงถึงผลลัพธ์ของเกมเหล่านี้
ทาคาฮาชิชนะเกมที่ i หากตัวอักษรที่ i ของ S คือ T และอาโอกิชนะเกมนั้นหากเป็น A
ผู้ชนะโดยรวมระหว่างทาคาฮาชิและอาโอกิคือผู้ที่ชนะเกมมากกว่าอีกฝ่าย
หากทั้งคู่มีจำนวนชัยชนะเท่ากัน ผู้ชนะโดยรวมคือผู้ที่ชนะถึงจำนวนดังกล่าวเป็นคนแรก
ค้นหาผู้ชนะโดยรวม: ทาคาฮาชิหรืออาโอกิ

อินพุต

อินพุตนี้ให้มาจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N
S

เอาต์พุต

หากผู้ชนะโดยรวมคือทาคาฮาชิ ให้พิมพ์ T หากเป็นอาโอกิ ให้พิมพ์ A

ข้อจำกัด

- 1\leq N \leq 100
- N เป็นจำนวนเต็ม - S คือสตริงความยาว N ประกอบด้วย T และ A

ตัวอย่างอินพุต 1

5
TTAAT

ตัวอย่างเอาต์พุต 1

T

ทาคาฮาชิชนะสามเกม และอาโอกิชนะสองเกม
ดังนั้นผู้ชนะโดยรวมคือทาคาฮาชิ ซึ่งชนะเกมมากกว่า

ตัวอย่างอินพุต 2

6
ATTATA

ตัวอย่างเอาต์พุต 2

T

ทั้งทาคาฮาชิและอาโอกิชนะสามเกม
ทาคาฮาชิชนะสามครั้งในเกมที่ห้า และอาโอกิในเกมที่หก
ดังนั้นผู้ชนะโดยรวมคือทาคาฮาชิ ซึ่งชนะสามครั้งก่อน

ตัวอย่างอินพุต 3

1
A

ตัวอย่างเอาต์พุต 3

A

ทาคาฮาชิและอาโอกิเล่นเกม N เกม
คุณได้รับสตริง S ที่มีความยาว N ซึ่งแสดงผลการแข่งขันเหล่านี้
ทาคาฮาชิชนะเกมที่ i ถ้าตัวอักษรที่ i ของ S เป็น T และอาโอกิชนะเกมนั้นถ้าตัวอักษรเป็น A
ผู้ชนะโดยรวมระหว่างทาคาฮาชิและอาโอกิคือผู้ที่ชนะมากกว่าอีกฝ่าย
หากพวกเขามีจำนวนชัยชนะเท่ากัน ผู้ชนะโดยรวมคือผู้ที่ถึงจำนวนชัยชนะนั้นก่อน
หาผู้ชนะโดยรวม: ทาคาฮาชิหรืออาโอกิ

Input

ข้อมูลนำเข้าจะถูกให้จากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N
S

Output

ถ้าผู้ชนะโดยรวมคือ Takahashi ให้พิมพ์ T; ถ้าผู้ชนะคือ Aoki ให้พิมพ์ A.

ข้อจำกัด

- 1\leq N \leq 100
- N เป็นจำนวนเต็ม
- S เป็นสตริงที่มีความยาว N ประกอบด้วย T และ A

ตัวอย่างInput 1

5
TTAAT

ตัวอย่างOutput 1

T

ทาคาฮาชิชนะสามเกม และอาโอกิชนะสองเกม ดังนั้นผู้ชนะโดยรวมคือทาคาฮาชิ ซึ่งชนะมากกว่าเกม

ตัวอย่าง Input 2

6
ATTATA

ตัวอย่างOutput 2

T

ทั้งทาคาฮาชิและอาโอกิชนะไปสามเกม
 ทาคาฮาชิทำได้สามชัยชนะในเกมที่ห้า ส่วนอาโอกิทำได้ในเกมที่หก
ดังนั้นผู้ชนะโดยรวมคือทาคาฮาชิ ซึ่งทำได้สามชัยชนะก่อนน

ตัวอย่าง Input 3

1
A

ตัวอย่างOutput 3

A

Takahashi และ Aoki เล่นเกม N เกม
ให้คุณพิจารณาสตริง S ที่มีความยาว N ซึ่งแสดงผลลัพธ์ของเกมเหล่านี้
Takahashi ชนะเกมที่ i-th ถ้าตัวอักษรที่ i-th ของ S คือ T และ Aoki ชนะเกมนั้นถ้าเป็น A
ผู้ชนะทั้งหมดระหว่าง Takahashi และ Aoki คือคนที่ชนะเกมมากกว่าอีกฝ่าย
ถ้าพวกเขาชนะจำนวนเกมเท่ากัน ผู้ชนะคือคนที่ถึงจำนวนชนะนั้นก่อน
หาผู้ชนะทั้งหมด: Takahashi หรือ Aoki

Input

ข้อมูลนำเข้าจะถูกให้จากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N
S

Output

ถ้าผู้ชนะทั้งหมดคือ Takahashi ให้พิมพ์ T; ถ้าเป็น Aoki ให้พิมพ์ A

ข้อจำกัด

- 1\leq N \leq 100
- N เป็นจำนวนเต็ม
- S เป็นสตริงความยาว N ที่ประกอบด้วย T และ A

ตัวอย่างInput 1

5
TTAAT

ตัวอย่างข้Output 1

T

Takahashi ชนะสามเกม และ Aoki ชนะสองเกม
ดังนั้น ผู้ชนะทั้งหมดคือ Takahashi, ที่ชนะเกมมากกว่า

ตัวอย่างInput 2

6
ATTATA

ตัวอย่างOutput 2

T

ทั้ง Takahashi และ Aoki ชนะสามเกม
Takahashi ถึงการชนะสามครั้งในเกมที่ห้า และ Aoki ในเกมที่หก
ดังนั้น ผู้ชนะทั้งหมดคือ Takahashi, ที่ถึงการชนะสามครั้งก่อน

ตัวอย่างข้อมูลนำเข้า 3

1
A

ตัวอย่างข้อมูลส่งออก 3

A


เรามีลำดับความยาว N ประกอบด้วยจำนวนเต็มบวก: A=(A_1,\ldots,A_N) ซึ่งค่าของสองพจน์ที่อยู่ติดกันแตกต่างกัน
ให้เราแทรกตัวเลขบางตัวลงในลำดับนี้โดยใช้ขั้นตอนดังต่อไปนี้

- ถ้าทุกคู่ของพจน์ที่อยู่ติดกันใน A มีผลต่างสัมบูรณ์เป็น 1 ให้สิ้นสุดกระบวนการ
- ให้ A_i, A_{i+1} เป็นคู่ของพจน์ที่อยู่ติดกันที่ใกล้จุดเริ่มต้นของ A ที่มีผลต่างสัมบูรณ์ไม่ใช่ 1
- ถ้า A_i < A_{i+1} ให้แทรก A_i+1,A_i+2,...,A_{i+1}-1 ระหว่าง A_i และ A_{i+1}
- ถ้า A_i > A_{i+1} ให้แทรก A_i-1,A_i-2,...,A_{i+1}+1 ระหว่าง A_i และ A_{i+1}

- กลับไปที่ขั้นตอนที่ 1

พิมพ์ลำดับเมื่อกระบวนการสิ้นสุด

ข้อมูลนำเข้า

ข้อมูลนำเข้าจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N
A_1 A_2 \ldots A_N

ข้อมูลส่งออก

พิมพ์พจน์ในลำดับเมื่อลำดับสิ้นสุด โดยคั่นด้วยช่องว่าง

ข้อจำกัด

- 2 \leq N \leq 100
- 1 \leq A_i \leq 100
- A_i \neq A_{i+1}
- ค่าทั้งหมดในข้อมูลนำเข้าเป็นจำนวนเต็ม

ตัวอย่างข้อมูลนำเข้า 1

4
2 5 1 2

ตัวอย่างข้อมูลส่งออก 1

2 3 4 5 4 3 2 1 2

ลำดับเริ่มต้นคือ (2,5,1,2) กระบวนการดำเนินการดังนี้

- แทรก 3,4 ระหว่างพจน์แรก 2 และพจน์ที่สอง 5 ทำให้ลำดับเป็น (2,3,4,5,1,2)
- แทรก 4,3,2 ระหว่างพจน์ที่สี่ 5 และพจน์ที่ห้า 1 ทำให้ลำดับเป็น (2,3,4,5,4,3,2,1,2)

ตัวอย่างข้อมูลนำเข้า 2

6
3 4 5 6 5 4

ตัวอย่างข้อมูลส่งออก 2

3 4 5 6 5 4

ไม่มีการแทรกสามารถทำได้

เรามีลำดับความยาว N ;ซึ่งประกอบด้วยจำนวนเต็มบวก: A=(A_1,\ldots,A_N) ซึ่งคำสองคำที่อยู่ติดกันจะมีค่าต่างกัน
ให้เราแทรกตัวเลขบางตัวลงในลำดับนี้โดยตามขั้นตอนดังต่อไปนี้

- ถ้าทุกคู่ของพจน์ที่อยู่ติดกันใน A มีผลต่างสัมบูรณ์เป็น 1 ให้สิ้นสุดกระบวนการ
- ให้ A_i, A_{i+1} เป็นคู่ของพจน์ที่อยู่ติดกันที่ใกล้กับจุดเริ่มต้นของ A ที่มีผลต่างสัมบูรณ์ไม่ใช่ 1
- ถ้า A_i < A_{i+1} ให้แทรก A_i+1,A_i+2,...,A_{i+1}-1 ระหว่าง A_i และ A_{i+1}
- ถ้า A_i > A_{i+1} ให้แทรก A_i-1,A_i-2,...,A_{i+1}+1 ระหว่าง A_i และ A_{i+1}

- กลับไปที่ขั้นตอนที่ 1

พิมพ์ลำดับเมื่อกระบวนการสิ้นสุด

Input

ข้อมูลนำเข้าจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N
A_1 A_2 \ldots A_N

Output

ข้อมูลส่งออก
พิมพ์พจน์ในลำดับเมื่อลำดับสิ้นสุด โดยคั่นด้วยช่องว่าง

ข้อจำกัด

- 2 \leq N \leq 100
- 1 \leq A_i \leq 100
- A_i \neq A_{i+1}
- ค่าทั้งหมดในข้อมูลนำเข้าเป็นจำนวนเต็ม

ตัวอย่างข้อมูลนำเข้า 1

4
2 5 1 2

ตัวอย่างข้อมูลส่งออก 1

2 3 4 5 4 3 2 1 2

ลำดับเริ่มต้นคือ (2,5,1,2) กระบวนการดำเนินการดังนี้

- แทรก 3,4 ระหว่างพจน์แรก 2 และพจน์ที่สอง 5 ทำให้ลำดับเป็น (2,3,4,5,1,2)
- แทรก 4,3,2 ระหว่างพจน์ที่สี่ 5 และพจน์ที่ห้า 1 ทำให้ลำดับเป็น (2,3,4,5,4,3,2,1,2)

ตัวอย่างข้อมูลนำเข้า 2

6
3 4 5 6 5 4

ตัวอย่างข้อมูลส่งออก 2

3 4 5 6 5 4

ไม่สามารถทำการแทรกได้

เรามีลำดับความยาว N ประกอบด้วยจำนวนเต็มบวก: A = (A_1, \ldots, A_N) คำสองคำใด ๆ ที่อยู่ติดกันมีค่าที่แตกต่างกัน
ให้เราแทรกตัวเลขบางอย่างลงในลำดับนี้โดยขั้นตอนต่อไปนี้

- หากคำศัพท์ที่อยู่ติดกันทุกคู่ใน A มีความแตกต่างอย่างแน่นอนของ 1 ให้ยกเลิกขั้นตอน
- ให้ A_i, A_ {i+1} เป็นคู่ของคำที่อยู่ติดกันใกล้กับจุดเริ่มต้นของ A ซึ่งแตกต่างกันอย่างแน่นอนไม่ใช่ 1
- ถ้า A_i <A_ {i+1}, แทรก A_i+1, A_i+2, \ldots, A_ {i+1} -1 ระหว่าง A_i และ A_ {i+1}
- ถ้า A_i> A_ {i+1}, แทรก A_i-1, A_i-2, \ldots, A_ {i+1} +1 ระหว่าง A_i และ A_ {i+1}

- กลับไปที่ขั้นตอนที่ 1

พิมพ์ลำดับเมื่อขั้นตอนสิ้นสุดลง

ป้อนข้อมูล

อินพุตได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N
A_1 A_2 \ldots A_N

เอาท์พุท

พิมพ์คำศัพท์ในลำดับเมื่อขั้นตอนสิ้นสุดโดยคั่นด้วยช่องว่าง

ข้อ จำกัด

- 2 \leq N \leq 100
- 1 \leq A_i \leq 100
- A_i \neq A_{i+1}
- ค่าทั้งหมดในอินพุตเป็นจำนวนเต็ม

อินพุตตัวอย่าง 1

4
2 5 1 2

ตัวอย่างเอาท์พุท 1

2 3 4 5 4 3 2 1 2

ลำดับเริ่มต้นคือ (2,5,1,2) ขั้นตอนมีดังนี้

- แทรก 3,4 ระหว่างคำศัพท์แรก 2 และคำศัพท์ที่สอง 5 ทำให้ลำดับ (2,3,4,5,1,2)
- แทรก 4,3,2 ระหว่างคำศัพท์ที่สี่ 5 และคำศัพท์ที่ห้า 1 ทำให้ลำดับ (2,3,4,5,4,3,2,1,2)

อินพุตตัวอย่าง 2

6
3 4 5 6 5 4

ตัวอย่างเอาท์พุท 2

3 4 5 6 5 4

ไม่สามารถทำการแทรก


เกมไพ่สำหรับผู้เล่นคนเดียวเป็นที่นิยมใน AtCoder Inc.
ไพ่แต่ละใบในเกมจะมีตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กหรือสัญลักษณ์ @ เขียนอยู่ ไพ่แต่ละประเภทมีจำนวนมากมาย
เกมดำเนินไปดังนี้

- เรียงไพ่จำนวนเท่ากันเป็นสองแถว
- แทนที่ไพ่แต่ละใบด้วย @ ด้วยไพ่ใดไพ่หนึ่งต่อไปนี้: a, t, c, o, d, e, r
- ถ้าไพ่สองแถวตรงกัน คุณจะชนะ มิฉะนั้น คุณจะแพ้

หากต้องการชนะเกมนี้ คุณจะต้องโกงดังต่อไปนี้

- เรียงไพ่ในแถวใหม่ได้อย่างอิสระเมื่อใดก็ได้หลังจากขั้นตอนที่ 1

คุณจะได้รับสตริงสองสตริงคือ S และ T ซึ่งแสดงถึงสองแถวที่คุณมีหลังจากขั้นตอนที่ 1 กำหนดว่าสามารถชนะได้หรือไม่หากอนุญาตให้โกง

อินพุต

อินพุตมาจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
S
T

เอาต์พุต

ถ้าสามารถชนะได้หากโกงได้ ให้พิมพ์ Yes; หากไม่สามารถ ให้พิมพ์ No

ข้อจำกัด

- S และ T ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและ @
- ความยาวของ S และ T เท่ากันและอยู่ระหว่าง 1 ถึง 2 คูณ 10^5 รวม

ตัวอย่างอินพุต 1

ch@ku@ai
choku@@i

ตัวอย่างเอาต์พุต 1

Yes

คุณสามารถแทนที่ @ เพื่อให้ทั้งสองแถวกลายเป็น chokudai

ตัวอย่างอินพุต 2

ch@kud@i
akidu@ho

ตัวอย่างเอาต์พุต 2

Yes

คุณสามารถโกงและแทนที่ @ เพื่อให้ทั้งสองแถวกลายเป็น chokudai

ตัวอย่างอินพุต 3

aoki
@ok@

ตัวอย่างเอาต์พุต 3

No

คุณไม่สามารถชนะได้แม้จะโกงก็ตาม

ตัวอย่างอินพุต 4

aa
bb

ตัวอย่างเอาต์พุต 4

No

เกมการ์ดผู้เล่นเดี่ยวเป็นที่นิยมใน Atcoder Inc.
การ์ดแต่ละใบในเกมมีตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กหรือสัญลักษณ์ @ เขียนอยู่ มีการ์ดจำนวนมากสำหรับแต่ละประเภท
เกมดังต่อไปนี้

- จัดเรียงบัตรจำนวนเท่ากันในสองแถว
- แทนที่การ์ดแต่ละใบด้วย @ ด้วยการ์ดใบใดใบหนึ่งต่อไปนี้: a, t, c, o, d, e, r.
- หากการ์ดทั้งสองแถวตรงกัน คุณจะชนะ มิฉะนั้นคุณจะแพ้

ในการชนะเกมนี้คุณจะโกงต่อไปนี้

- จัดเรียงการ์ดใหม่ภายในแถวเมื่อใดก็ตามที่คุณต้องการหลังจากขั้นตอนที่ 1

คุณจะได้รับสองสาย S และ T ซึ่งเป็นตัวแทนของสองแถวที่คุณมีหลังจากขั้นตอนที่ 1 ซึ่งเป็นตัวแทนของสองแถวที่คุณมีหลังจากขั้นตอนที่ 1 ตรวจสอบว่าเป็นไปได้หรือไม่ที่จะชนะด้วยการโกง

ป้อนข้อมูล

อินพุตได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
S
T

เอาท์พุท

หากเป็นไปได้ที่จะชนะด้วยการโกง อนุญาตให้พิมพ์ 'ใช่'; มิฉะนั้นพิมพ์ 'ไม่'

ข้อ จำกัด

- S และ T ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและ @
- ความยาวของ S และ T เท่ากันและระหว่าง 1 ถึง 2 \times 10^5 รวม

อินพุตตัวอย่าง 1

ch@ku@ai
choku@@i

ตัวอย่างเอาท์พุท 1

Yes

คุณสามารถแทนที่ @s เพื่อให้ทั้งสองแถวกลายเป็น chokudai

อินพุตตัวอย่าง 2

ch@kud@i
akidu@ho

ตัวอย่างเอาท์พุท 2

Yes

คุณสามารถโกงและแทนที่ @s เพื่อให้ทั้งสองแถวกลายเป็น chokudai

อินพุตตัวอย่าง 3

aoki
@ok@

ตัวอย่างเอาท์พุท 3

No

คุณไม่สามารถชนะได้แม้กระทั่งการโกง

อินพุตตัวอย่าง 4

aa
bb

ตัวอย่างเอาท์พุท 4

No

เกมไพ่แบบเล่นคนเดี่ยวที่ได้รับความนิยอมใน AtCoder Inc.
การ์ดแต่ละใบในเกมมีตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กหรือสัญลักษณ์ @ เขียนอยู่บนไพ่ โดยในแต่ละประเภทจะมีจำนวนไพ่มากมาย
เกมนี้เล่นดังนี้

- จัดเรียงไพ่จำนวนเท่ากันในสองแถว
- แทนที่ไพ่ที่มีสัญลักษณ์ @ ด้วยหนึ่งในไพ่ต่อไปนี้: a, t, c, o, d, e, r.
- หากไพ่ในสองแถวตรงกัน คุณจะชนะ หากไม่ตรงกัน คุณจะแพ้

ในการชนะเกมนี้ คุณจะทำตามโกงดังนี้

- จัดเรียงการ์ดใหม่ภายในแถวได้อย่างอิสระตามต้องการหลังขั้นตอนที่ 1

คุณได้รับสตริงสองตัว S และ T ซึ่งแทนเป็นไพ่ในสองแถวหลังขั้นตอนที่ 1 พิจารณาว่าเป็นไปได้หรือไม่ที่จะชนะโดยอนุญาตให้มีการโกง

Input

อินพุตได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
S
T
Output

หากเป็นไปได้ที่จะชนะโดยอนุญาตให้มีการโกง ให้พิมพ์ Yes; มิฉะนั้น ให้พิมพ์ No

ข้อจำกัด

- S และ T ประกอบด้วยตัวอักษรภาษาอังกฤษพิมพ์เล็กและ @
- ความยาวของ S และ T เท่ากันและอยู่ระหว่าง 1 ถึง 2\times 10^5 (รวมทั้งสอง)

ตัวอย่างข้อมูลนำเข้า 1

ch@ku@ai
choku@@i

ตัวอย่างผลลัพธ์ 1

Yes

คุณสามารถแทนที่ @ เพื่อให้ทั้งสองแถวกลายเป็น chokudai

ตัวอย่างข้อมูลนำเข้า 2

ch@kud@i
akidu@ho

ตัวอย่างผลลัพธ์ 2

Yes

คุณสามารถโกงและแทนที่ @ เพื่อให้ทั้งสองแถวกลายเป็น chokudai

ตัวอย่างข้อมูลนำเข้า 3

aoki
@ok@

ตัวอย่างผลลัพธ์ 3

No

คุณไม่สามารถชนะได้แม้ว่าโกง

ตัวอย่างข้อมูลนำเข้า 4

aa
bb

ตัวอย่างผลลัพธ์ 4

No


คุณมีจำนวนเต็ม N และสตริง S ที่ประกอบด้วย 0, 1 และ ?
ให้ T เป็นเซตของค่าที่ได้จากการแทน ? แต่ละตัวใน S ด้วย 0 หรือ 1 และแปลผลลัพธ์เป็นจำนวนเต็มฐานสอง
ตัวอย่างเช่น ถ้า S= ?0? เราจะได้ T=\lbrace 000_{(2)},001_{(2)},100_{(2)},101_{(2)}\rbrace=\lbrace 0,1,4,5\rbrace
พิมพ์ (ในรูปจำนวนเต็มฐานสิบ) ค่าที่มากที่สุดใน T ซึ่งน้อยกว่าหรือเท่ากับ N
ถ้า T ไม่มีค่าที่น้อยกว่าหรือเท่ากับ N ให้พิมพ์ -1

ข้อมูลนำเข้า

ข้อมูลนำเข้าถูกให้จาก Standard Input ในรูปแบบต่อไปนี้:
S
N

ข้อมูลส่งออก

พิมพ์คำตอบ

ข้อจำกัด

- S เป็นสตริงที่ประกอบด้วย 0, 1 และ ?
- ความยาวของ S อยู่ระหว่าง 1 ถึง 60 รวมทั้งสิ้น
- 1\leq N \leq 10^{18}
- N เป็นจำนวนเต็ม

ตัวอย่างข้อมูลนำเข้า 1

?0?
2

ตัวอย่างข้อมูลส่งออก 1

1

ดังที่แสดงในปัญหา T=\lbrace 0,1,4,5\rbrace
ในนั้น 0 และ 1 น้อยกว่าหรือเท่ากับ N ดังนั้นคุณควรพิมพ์ค่ามากที่สุดของพวกมันคือ 1

ตัวอย่างข้อมูลนำเข้า 2

101
4

ตัวอย่างข้อมูลส่งออก 2

-1

เรามี T=\lbrace 5\rbrace ซึ่งไม่มีค่าที่น้อยกว่าหรือเท่ากับ N

ตัวอย่างข้อมูลนำเข้า 3

?0?
1000000000000000000

ตัวอย่างข้อมูลส่งออก 3

5

คุณมีจำนวนเต็ม N และสตริง S ที่ประกอบด้วย 0, 1 และ ?
ให้ T เป็นเซตของค่าที่ได้จากการแทน ? แต่ละตัวใน S ด้วย 0 หรือ 1 และแปลผลลัพธ์เป็นจำนวนเต็มฐานสอง
ตัวอย่างเช่น ถ้า S= ?0? เราจะได้ T=\lbrace 000_{(2)},001_{(2)},100_{(2)},101_{(2)}\rbrace=\lbrace 0,1,4,5\rbrace
พิมพ์ (ในรูปจำนวนเต็มฐานสิบ) ค่าที่มากที่สุดใน T ซึ่งน้อยกว่าหรือเท่ากับ N
ถ้า T ไม่มีค่าที่น้อยกว่าหรือเท่ากับ N ให้พิมพ์ -1

Input

ข้อมูลนำเข้าถูกให้จาก Standard Input ในรูปแบบต่อไปนี้:
S
N

Output

พิมพ์คำตอบ

ข้อจำกัด

- S เป็นสตริงที่ประกอบด้วย 0, 1 และ ?
- ความยาวของ S อยู่ระหว่าง 1 ถึง 60 รวมทั้งสิ้น
- 1\leq N \leq 10^{18}
- N เป็นจำนวนเต็ม

ตัวอย่างInput 1

?0?
2

ตัวอย่างOutput 1

1

ดังที่แสดงในปัญหา T=\lbrace 0,1,4,5\rbrace
ในนั้น 0 และ 1 น้อยกว่าหรือเท่ากับ N ดังนั้นคุณควรพิมพ์ค่ามากที่สุดของพวกมันคือ 1

ตัวอย่างInput 2

101
4

ตัวอย่างOutput 2

-1

เรามี T=\lbrace 5\rbrace ซึ่งไม่มีค่าที่น้อยกว่าหรือเท่ากับ N

ตัวอย่างInput 3

?0?
1000000000000000000

ตัวอย่างOutput 3

5

คุณจะได้รับจำนวนเต็ม N และสตริง S ประกอบด้วย 0, 1 และ?
ให้ t เป็นชุดของค่าที่ได้จากการแทนที่แต่ละ? ใน S ด้วย 0 หรือ 1 และตีความผลลัพธ์เป็นจำนวนเต็มไบนารี
ตัวอย่างเช่นถ้า s =? 0?, เรามี T= \ lbrace 000 _ {(2)}, 001 _ {(2)}, 100 _ {(2)}, 101 _ {(2)} \ rbrace = \ lbrace 0, 1, 4, 5 \rbrace
พิมพ์ (เป็นจำนวนเต็มทศนิยม) ค่าที่มากที่สุดใน t น้อยกว่าหรือเท่ากับ N
หาก t ไม่มีค่าน้อยกว่าหรือเท่ากับ N ให้พิมพ์ -1 แทน

ป้อนข้อมูล

อินพุตได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
S
N

เอาท์พุท

พิมพ์คำตอบ

ข้อ จำกัด

- S เป็นสตริงที่ประกอบด้วย 0, 1 และ?
- ความยาวของ S อยู่ระหว่าง 1 ถึง 60 รวม
- 1\leq N \leq 10^{18}
- N เป็นจำนวนเต็ม

อินพุตตัวอย่าง 1

? 0?
2

ตัวอย่างเอาท์พุท 1

1

ดังที่แสดงในคำสั่งปัญหา T = \ lbrace 0,1,4,5 \ rbrace
ในหมู่พวกเขา 0 และ 1 น้อยกว่าหรือเท่ากับ N ดังนั้นคุณควรพิมพ์สิ่งที่ยิ่งใหญ่ที่สุดของพวกเขา 1

อินพุตตัวอย่าง 2

101
4

ตัวอย่างเอาท์พุท 2

-1

เรามี T=\brace 5\rbrace ซึ่งไม่มีค่าน้อยกว่าหรือเท่ากับ N

อินพุตตัวอย่าง 3

? 0?
 100000000000000000

ตัวอย่างเอาท์พุท 3

5


เรามีตารางที่มี H แถวและ W คอลัมน์
ให้ (i,j) แทนช่องที่อยู่ในแถวที่ i จากด้านบน และคอลัมน์ที่ j จากทางซ้าย
แต่ละช่องในตารางเป็นหนึ่งในสิ่งต่อไปนี้: ช่องเริ่มต้น, ช่องเป้าหมาย, ช่องว่าง, ช่องกำแพง และช่องลูกอม
(i,j) แทนด้วยตัวอักษร A_{i,j} และเป็นช่องเริ่มต้นถ้า A_{i,j}= S, ช่องเป้าหมายถ้า A_{i,j}= G, ช่องว่างถ้า A_{i,j}= ., ช่องกำแพงถ้า A_{i,j}= #, และช่องลูกอมถ้า A_{i,j}= o
ที่นี่ รับประกันว่ามีช่องเริ่มต้นหนึ่งเดียว, ช่องเป้าหมายหนึ่งเดียว, และช่องลูกอมสูงสุด 18 ช่อง
ทากาฮาชิอยู่ที่ช่องเริ่มต้นตอนนี้
เขาสามารถย้ายไปยังช่องที่ติดกันในแนวดิ่งหรือแนวนอนซึ่งไม่ใช่ช่องกำแพงซ้ำ ๆ ได้
เขาต้องการไปยังช่องเป้าหมายในไม่เกิน T ย้าย
กำหนดว่าเป็นไปได้หรือไม่
ถ้าเป็นไปได้ ให้หาจำนวนสูงสุดของช่องลูกอมที่เขาสามารถเยี่ยมชมระหว่างทางไปยังช่องเป้าหมาย ซึ่งเขาต้องไปสิ้นสุดที่นั่น
แต่ละช่องลูกอมนับเพียงครั้งเดียว แม้ว่าจะถูกเยี่ยมชมหลายครั้ง

ข้อมูลนำเข้า

ข้อมูลนำเข้าให้จาก Standard Input ในรูปแบบต่อไปนี้:
H W T
A_{1,1}A_{1,2}\dots A_{1,W}
\vdots
A_{H,1}A_{H,2}\dots A_{H,W}

ข้อมูลส่งออก

ถ้าเป็นไปไม่ได้ที่จะไปถึงช่องเป้าหมายในไม่เกิน T ย้าย ให้พิมพ์ -1
มิฉะนั้น ให้พิมพ์จำนวนสูงสุดของช่องลูกอมที่สามารถเยี่ยมชมได้ระหว่างทางไปยังช่องเป้าหมาย ซึ่งทากาฮาชิต้องไปสิ้นสุดที่นั่น

ข้อจำกัด

- 1\leq H,W \leq 300
- 1 \leq T \leq 2\times 10^6
- H, W, และ T เป็นจำนวนเต็ม
- A_{i,j} เป็นหนึ่งใน S, G, ., #, และ o
- มีเพียงคู่เดียว (i,j) ที่ทำให้ A_{i,j}= S
- มีเพียงคู่เดียว (i,j) ที่ทำให้ A_{i,j}= G
- มากสุด 18 คู่ (i,j) ที่ทำให้ A_{i,j}= o

ตัวอย่างข้อมูลนำเข้า 1

3 3 5
S.G
o#o
.#.

ตัวอย่างข้อมูลส่งออก 1

1

ถ้าเขาเดิน 4 ย้ายเป็น (1,1) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (2,3) \rightarrow (1,3), เขาสามารถเยี่ยมชมช่องลูกอมหนึ่งช่องและสิ้นสุดที่ช่องเป้าหมาย
เขาไม่สามารถทำ 5 หรือมากกว่าย้ายเพื่อเยี่ยมชมสองช่องลูกอมและสิ้นสุดที่ช่องเป้าหมาย ดังนั้นคำตอบคือ 1
โปรดทราบว่าการทำ 5 ย้ายเป็น (1,1) \rightarrow (2,1) \rightarrow (1,1) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (2,3) เพื่อเยี่ยมชมสองช่องลูกอมไม่ใช่ถูกต้องเพราะเขาจะไม่ได้สิ้นสุดที่ช่องเป้าหมาย

ตัวอย่างข้อมูลนำเข้า 2

3 3 1
S.G
.#o
o#.

ตัวอย่างข้อมูลส่งออก 2

-1

เขาไม่สามารถไปถึงช่องเป้าหมายในเวลาหนึ่งหรือย้ายน้อยกว่าได้

ตัวอย่างข้อมูลนำเข้า 3

5 10 2000000
S.o..ooo..
..o..o.o..
..o..ooo..
..o..o.o..
..o..ooo.G

ตัวอย่างข้อมูลส่งออก 3

18

เรามีตารางที่มี H แถวและ W คอลัมน์
ให้ (i,j) แทนช่องที่แถวที่ i จากด้านบนและคอลัมน์ที่ j จากด้านซ้าย
ช่องแต่ละช่องในตารางคือช่องใดช่องหนึ่งต่อไปนี้: ช่องเริ่มต้น ช่องเป้าหมาย ช่องว่าง ช่องกำแพง และช่องลูกอม
(i,j) แสดงด้วยอักขระ A_{i,j} และเป็นช่องเริ่มต้นถ้า A_{i,j}= S ช่องเป้าหมายถ้า A_{i,j}= G ช่องว่างถ้า A_{i,j}= . ช่องกำแพงถ้า A_{i,j}= # และช่องลูกอมถ้า A_{i,j}= o
ที่นี่ รับประกันได้ว่ามีจุดเริ่มต้นที่แน่นอน 1 ช่อง เป้าหมายที่แน่นอน 1 ช่อง และช่องลูกอมไม่เกิน 18 ช่อง
ทาคาฮาชิอยู่ที่จุดเริ่มต้นแล้ว
เขาสามารถเคลื่อนที่ซ้ำไปยังช่องที่อยู่ติดกันในแนวตั้งหรือแนวนอนที่ไม่ใช่กำแพงได้
เขาต้องการไปถึงช่องเป้าหมายให้ได้ภายในเวลาไม่เกิน T ครั้ง พิจารณาว่าเป็นไปได้หรือไม่
หากเป็นไปได้ ให้หาจำนวนช่องขนมสูงสุดที่เขาสามารถแวะเยี่ยมชมได้ระหว่างทางไปยังช่องเป้าหมายที่เขาต้องเข้าให้ถึง
ช่องขนมแต่ละช่องจะนับเพียงครั้งเดียว แม้ว่าจะแวะเยี่ยมชมหลายครั้งก็ตาม

อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
H W T
A_{1,1}A_{1,2}\dots A_{1,W}
\vdots
A_{H,1}A_{H,2}\dots A_{H,W}

เอาต์พุต

หากไม่สามารถเข้าให้ถึงช่องประตูได้ภายใน T ครั้ง ให้พิมพ์ -1
มิฉะนั้น ให้พิมพ์จำนวนช่องขนมสูงสุดที่สามารถแวะได้ระหว่างทางไปยังช่องประตูที่เขาต้องเข้าให้เสร็จ

ข้อจำกัด

- 1\leq H,W \leq 300
- 1 \leq T \leq 2\times 10^6
- H, W และ T เป็นจำนวนเต็ม
- A_{i,j} คือหนึ่งใน S, G, ., # และ o
- คู่ (i,j) หนึ่งคู่ตรงตาม A_{i,j}= S เท่านั้น
- คู่ (i,j) หนึ่งคู่ตรงตาม A_{i,j}= G เท่านั้น
- คู่ (i,j) มากที่สุด 18 คู่ตรงตาม A_{i,j}= o

ตัวอย่างอินพุต 1

3 3 5
S.G
o#o
.#.

ตัวอย่างเอาต์พุต 1

1

หากเขาเดินสี่ครั้งเป็น (1,1) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (2,3) \rightarrow (1,3) เขาสามารถเยี่ยมชมช่องลูกอมหนึ่งช่องและจบลงที่ช่องเป้าหมายได้
เขาไม่สามารถเดินห้าครั้งหรือน้อยกว่าเพื่อเยี่ยมชมช่องลูกอมสองช่องและจบลงที่ช่องเป้าหมายได้ ดังนั้นคำตอบคือ 1
โปรดทราบว่าการเดินห้าครั้งเป็น (1,1) \rightarrow (2,1) \rightarrow (1,1) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (2,3) เพื่อเยี่ยมชมช่องลูกอมสองช่องนั้นไม่ถูกต้องเนื่องจากเขาจะไม่จบลงที่ช่องเป้าหมาย

ตัวอย่างอินพุต 2

3 3 1
S.G
.#o
o#.

ตัวอย่างเอาต์พุต 2

-1

เขาไม่สามารถไปถึงช่องเป้าหมายได้ในการเคลื่อนที่เพียงครั้งเดียวหรือน้อยกว่านั้น

ตัวอย่างอินพุต 3

5 10 2000000
S.o..ooo..
..o..o.o..
..o..ooo..
..o..o.o..
..o..ooo.G

ตัวอย่างเอาต์พุต 3

18

เรามีตารางที่มี H แถวและ W คอลัมน์
ให้ (i,j) แทนช่องสี่เหลี่ยมที่แถวที่ i จากด้านบนและคอลัมน์ที่ j จากด้านซ้าย
แต่ละช่องในตารางเป็นหนึ่งในประเภทต่อไปนี้: ช่องเริ่มต้น, ช่องเป้าหมาย, ช่องว่าง, ช่องกำแพง, และช่องลูกกวาด
(i,j) ถูกแทนด้วยตัวอักษร A_{i,j} และเป็นช่องเริ่มต้นหาก A_{i,j}= S, ช่องเป้าหมายหาก A_{i,j}= G, ช่องว่างหาก A_{i,j}= ., ช่องกำแพงหาก A_{i,j}= #, และช่องขนมหวานหาก A_{i,j}= o. ที่นี่ รับประกันว่ามีช่องเริ่มต้นเพียงหนึ่งช่อง, ช่องเป้าหมายเพียงหนึ่งช่อง, และช่องขนมหวานสูงสุด 18 ช่อง. ทาคาฮาชิอยู่ที่ช่องเริ่มต้นในขณะนี้.
เขาสามารถทำซ้ำการเคลื่อนที่ไปยังช่องที่ไม่ใช่กำแพงซึ่งอยู่ติดกันในแนวตั้งหรือแนวนอน
เขาต้องการไปถึงช่องเป้าหมายภายในจำนวนการเคลื่อนที่ไม่เกิน T ครั้ง
กำหนดว่ามันเป็นไปได้หรือไม่
หากเป็นไปได้ ให้หาจำนวนช่องขนมสูงสุดที่เขาสามารถเยี่ยมชมได้ระหว่างทางไปยังช่องเป้าหมาย ซึ่งเขาต้องจบที่นั่น
โดยแต่ละช่องขนมจะนับเพียงครั้งเดียว แม้ว่าจะถูกเยี่ยมชมหลายครั้งก็ตาม

Input

ข้อมูลนำเข้าถูกให้มาจากการป้อนข้อมูลมาตรฐานในรูปแบบต่อไปนี้:
H W T
A_{1,1}A_{1,2}\dots A_{1,W}
\vdots
A_{H,1}A_{H,2}\dots A_{H,W}

Output

ถ้าไม่สามารถไปถึงสี่เหลี่ยมเป้าหมายในเวลาไม่เกิน T การเคลื่อนไหว ให้พิมพ์ -1
มิฉะนั้น ให้พิมพ์จำนวนสูงสุดของสี่เหลี่ยมขนมที่สามารถเยี่ยมชมได้ระหว่างทางไปยังสี่เหลี่ยมเป้าหมาย ซึ่งทาคาฮาชิต้องจบลงที่นั่น

ข้อจำกัด

- 1\leq H,W \leq 300
- 1 \leq T \leq 2\times 10^6
- H, W, และ T เป็นจำนวนเต็ม
- A_{i,j} เป็นหนึ่งใน S, G, ., #, และ o
- มีคู่ (i,j) เพียงหนึ่งคู่ที่ทำให้ A_{i,j}= S.
- มีคู่ (i,j) เพียงหนึ่งคู่ที่ทำให้ A_{i,j}= G.
- มีคู่ (i,j) ไม่เกิน 18 คู่ที่ทำให้ A_{i,j}= o.

ตัวอย่าง Input 1

3 3 5
S.G
o#o
.#.

ตัวอย่างOutput 1

1

ถ้าเขาทำการเคลื่อนที่สี่ครั้งตามลำดับ (1,1) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (2,3) \rightarrow (1,3) เขาสามารถไปยังช่องขนมหนึ่งช่องและจบที่ช่องเป้าหมายได้
เขาไม่สามารถทำการเคลื่อนที่ห้าครั้งหรือน้อยกว่านั้นเพื่อไปยังช่องขนมสองช่องและจบที่ช่องเป้าหมายได้ ดังนั้นคำตอบคือ 1
โปรดทราบว่าการทำห้าการเคลื่อนไหวเป็น (1,1) \rightarrow (2,1) \rightarrow (1,1) \rightarrow (1,2) \rightarrow (1,3) \rightarrow (2,3) เพื่อไปเยี่ยมชมสองช่องขนมถือเป็นการกระทำที่ไม่ถูกต้อง เนื่องจากเขาจะไม่จบที่ช่องเป้าหมาย

ตัวอย่าง Input 2

3 3 1
S.G
.#o
o#.

ตัวอย่าง Output  2

-1

เขาไม่สามารถไปถึงสี่เหลี่ยมเป้าหมายในหนึ่งครั้งหรือน้อยกว่านั้นได้

ตัวอย่างInput 3

5 10 2000000
S.o..ooo..
..o..o.o..
..o..ooo..
..o..o.o..
..o..ooo.G

ตัวอย่างOutput 3

18


สตริงประเภท DDoS คือสตริงที่มีความยาว 4 ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่และตัวพิมพ์เล็กที่ตรงตามเงื่อนไขทั้งสองต่อไปนี้

- อักขระตัวแรก ตัวที่สอง และตัวที่สี่เป็นตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่ และอักขระตัวที่สามเป็นตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก
- อักขระตัวแรกและตัวที่สองเท่ากัน

ตัวอย่างเช่น DDoS และ AAaA เป็นสตริงประเภท DDoS ในขณะที่ทั้ง ddos และ IPoE ไม่ใช่
คุณจะได้รับสตริง S ที่ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก และ ?
ให้ q เป็นจํานวนครั้งที่เกิดขึ้นของ ? ใน S. มีสตริง 52^q ที่สามารถรับได้โดยการแทนที่แต่ละสตริงอย่างอิสระ ? ใน S ด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก
ในบรรดาสตริงเหล่านี้ ให้ค้นหาจํานวนสตริงที่ไม่มีสตริงประเภท DDoS เป็นลําดับย่อย โมดูโล 998244353

อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
S

ผลิตภัณฑ์

พิมพ์คําตอบ

ข้อจํากัด

- S ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์ใหญ่ ตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก และ ?
- ความยาวของ S อยู่ระหว่าง 4 ถึง 3\times 10^5 รวม

ตัวอย่างอินพุต 1

DD??S

ตัวอย่างเอาต์พุต 1

676

เมื่ออย่างน้อยหนึ่ง ?s ถูกแทนที่ด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก สตริงผลลัพธ์จะมีสตริงประเภท DDoS เป็นลําดับย่อย

ตัวอย่างอินพุต 2

????????????????????????????????????????

ตัวอย่างเอาต์พุต 2

858572093

หาค่าตามโมดูโล 99824435

ตัวอย่างอินพุต 3

? D?? S

ตัวอย่างเอาต์พุต 3

136604

สตริงประเภท DDoS คือสตริงที่มีความยาว 4 ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวใหญ่และตัวเล็กที่เป็นไปตามเงื่อนไขทั้งสองข้อดังนี้

- ตัวอักษรตัวที่หนึ่ง ตัวที่สอง และตัวที่สี่เป็นตัวอักษรภาษาอังกฤษตัวใหญ่ และตัวอักษรตัวที่สามเป็นตัวอักษรภาษาอังกฤษตัวเล็ก
- ตัวอักษรตัวที่หนึ่งและตัวที่สองต้องเท่ากัน

ตัวอย่างเช่น DDoS และ AAaA เป็นสตริงประเภท DDoS ขณะที่ทั้ง ddos และ IPoE ไม่ใช่
คุณมีสตริง S ที่ประกอบด้วยตัวอักษรภาษาอังกฤษตัวใหญ่และตัวเล็กและ ?
ให้ q เป็นจำนวนครั้งที่ ? ปรากฏใน S จะมี 52^q สตริงที่สามารถสร้างได้โดยการแทนที่ ? ใน S เป็นตัวอักษรภาษาอังกฤษตัวใหญ่หรือตัวเล็กอิสระ
ในบรรดาสตริงเหล่านี้ ให้หาจำนวนสตริงที่ไม่มีสตริงประเภท DDoS เป็นสับสตริง ยกกำลัง 998244353

Input

อินพุตได้รับจาก Standard Input ในรูปแบบต่อไปนี้:
S

Output

พิมพ์คำตอบ

Constraints

- S ประกอบด้วยตัวอักษรภาษาอังกฤษตัวใหญ่ ตัวอักษรภาษาอังกฤษตัวเล็ก และ ?
- ความยาวของ S อยู่ระหว่าง 4 ถึง 3\times 10^5 รวม

ตัวอย่างInput 1

DD??S

ตัวอย่างOutput 1

676

เมื่ออย่างน้อยหนึ่งใน ? ถูกแทนที่ด้วยตัวอักษรภาษาอังกฤษตัวเล็ก สตริงที่ได้จะมีสตริงประเภท DDoS เป็นสับสตริง

ตัวอย่างInput 2

????????????????????????????????????????

ตัวอย่างOutput 2

858572093

หาจำนวนยกกำลัง 998244353

ตัวอย่างInput 3

?D??S

ตัวอย่างOutput 3

136604

สตริงประเภท DDoS คือสตริงที่มีความยาว 4 ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวใหญ่และตัวเล็กที่เป็นไปตามเงื่อนไขทั้งสองข้อดังนี้

- ตัวอักษรตัวที่หนึ่ง ตัวที่สอง และตัวที่สี่เป็นตัวอักษรภาษาอังกฤษตัวใหญ่ และตัวอักษรตัวที่สามเป็นตัวอักษรภาษาอังกฤษตัวเล็ก
- ตัวอักษรตัวที่หนึ่งและตัวที่สองต้องเท่ากัน

ตัวอย่างเช่น DDoS และ AAaA เป็นสตริงประเภท DDoS ขณะที่ทั้ง ddos และ IPoE ไม่ใช่
คุณมีสตริง S ที่ประกอบด้วยตัวอักษรภาษาอังกฤษตัวใหญ่และตัวเล็กและ ?
ให้ q เป็นจำนวนครั้งที่ ? ปรากฏใน S จะมี 52^q สตริงที่สามารถสร้างได้โดยการแทนที่ ? ใน S เป็นตัวอักษรภาษาอังกฤษตัวใหญ่หรือตัวเล็กอิสระ
ในบรรดาสตริงเหล่านี้ ให้หาจำนวนสตริงที่ไม่มีสตริงประเภท DDoS เป็นสับสตริง หารด้วย 998244353 และเอาเศษ.

Input

ข้อมูลนำเข้าได้รับจาก Standard Input ในรูปแบบต่อไปนี้:
S

Output

พิมพ์คำตอบ

Constraints

- S ประกอบด้วยตัวอักษรภาษาอังกฤษตัวใหญ่ ตัวอักษรภาษาอังกฤษตัวเล็ก และ ?
- ความยาวของ S อยู่ระหว่าง 4 ถึง 3\times 10^5 รวม

ตัวอย่างข้อมูลนำเข้า 1

DD??S

ตัวอย่างข้อมูลผลลัพธ์ 1

676

เมื่ออย่างน้อยหนึ่งใน ? ถูกแทนที่ด้วยตัวอักษรภาษาอังกฤษตัวเล็ก สตริงที่ได้จะมีสตริงประเภท DDoS เป็นสับสตริง

ตัวอย่างข้อมูลนำเข้า 2

????????????????????????????????????????

ตัวอย่างข้อมูลผลลัพธ์ 2

858572093

หาจำนวนยกกำลัง 998244353

ตัวอย่างข้อมูลนำเข้า 3

?D??S

ตัวอย่างข้อมูลผลลัพธ์ 3

136604


มีศัตรูที่มีค่าความอึด A ทุกครั้งที่คุณโจมตีศัตรู ค่าความอึดจะลดลง B
คุณต้องโจมตีศัตรูกี่ครั้งถึงจะทำให้ค่าความอึดของศัตรูลดลงเหลือ 0 หรือต่ำกว่า

อินพุต

อินพุตได้จากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
A B

เอาต์พุต

พิมพ์คำตอบ

เงื่อนไข

- 1 \le A,B \le 10^{18}
- A และ B เป็นจำนวนเต็ม

ตัวอย่างอินพุต 1

7 3

ตัวอย่างเอาต์พุต 1

3

การโจมตีสามครั้งทำให้ค่าความอึดของศัตรูลดลง -2
การโจมตีเพียงสองครั้งทำให้ค่าความอึดเป็น 1 ดังนั้นคุณต้องโจมตีศัตรูสามครั้ง

ตัวอย่างอินพุต 2

123456789123456789 987654321

ตัวอย่างเอาต์พุต 2

124999999

ตัวอย่างอินพุต 3

999999999999999998 2

ตัวอย่างเอาต์พุต 3

499999999999999999

มีศัตรูที่มีพลังชีวิต A  ทุกครั้งที่คุณโจมตีศัตรู พลังชีวิตของมันจะลดลง B
อย่างน้อยคุณต้องโจมตีศัตรูกี่ครั้งเพื่อให้พลังชีวิตของมันเป็น 0 หรือน้อยกว่า?

อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
A B

ผลลัพธ์

พิมพ์คําตอบ

ข้อจํากัด

- 1 \le A,B \le 10^{18}
- A และ B เป็นจํานวนเต็ม

ข้อมูลนำเข้าตัวอย่างที่ 1

7 3

ตัวอย่างเอาต์พุต 1

3

การโจมตีสามครั้งทําให้พลังชีวิตของศัตรู -2
การโจมตีเพียงสองครั้งจะทําให้พลังชีวิต 1 ดังนั้นคุณต้องโจมตีสามครั้ง

ข้อมูลนำเข้าตัวอย่างที่ 2

123456789123456789 987654321

ตัวอย่างเอาต์พุต 2

124999999

ข้อมูลนำเข้าตัวอย่างที่ 3

999999999999999998 2

ตัวอย่างเอาต์พุต 3

499999999999999999

มีศัตรูที่มีพลังชีวิต A ทุกครั้งที่คุณโจมตีศัตรู พลังชีวิตของมันจะลดลง B อย่างน้อยคุณต้องโจมตีศัตรูกี่ครั้งจึงจะทำให้พลังชีวิตของมันเหลือ 0 หรือน้อยกว่า?

Input

ข้อมูลนำเข้าจะได้รับจาก Standard Input ในรูปแบบต่อไปนี้:
A B

Output

พิมพ์คำตอบ

เงื่อนไข

- 1 \le A,B \le 10^{18}
- A และ B เป็นจำนวนเต็ม

ตัวอย่าง Input 1

7 3

ตัวอย่างที่ Output 1

3

การโจมตีสามครั้งทำให้พลังชีวิตของศัตรูลดลง -2
การโจมตีเพียงสองครั้งทำให้พลังชีวิตลดลง 1 ดังนั้นคุณต้องโจมตีมันสามครั้ง

ตัวอย่าง Input 2

123456789123456789 987654321

ตัวอย่าง Output 2

124999999

ตัวอย่าง Input 3

999999999999999998 2

ตัวอย่าง Output 3

499999999999999999


มีตารางที่มีแถวแนวนอน H แถวและคอลัมน์แนวตั้ง W คอลัมน์ แต่ละช่องมีตัวอักษรภาษาอังกฤษตัวเล็กเขียนอยู่ เราแทนด้วย (i, j) ซึ่งเป็นช่องที่แถวที่ i จากด้านบนและคอลัมน์ที่ j จากด้านซ้าย ตัวอักษรที่เขียนในตารางแทนด้วยสตริง H ตัว S_1, S_2, \ldots, S_H โดยแต่ละตัวมีความยาว W ตัวอักษร j ของ S_i แทนตัวอักษรที่เขียนใน (i, j) มีชุดของช่องติดกันที่ไม่ซ้ำในตาราง (ตามแนวตั้ง แนวนอน หรือแนวทแยง) ซึ่งมี s, n, u, k และ e เขียนไว้ตามลำดับ ค้นหาตำแหน่งของช่องดังกล่าวและพิมพ์ในรูปแบบที่ระบุในส่วน Output

ทูเพิลของห้าช่อง (A_1, A_2, A_3, A_4, A_5) จะกล่าวได้ว่าเป็นชุดของช่องที่ติดกัน (ตามแนวตั้ง แนวนอน หรือแนวทแยง) ซึ่งมี s, n, u, k และ e เขียนไว้ตามลำดับก็ต่อเมื่อเงื่อนไขทั้งหมดดังต่อไปนี้เป็นจริง

- A_1, A_2, A_3, A_4 และ A_5 มีตัวอักษร s, n, u, k และ e เขียนไว้ตามลำดับ
- สำหรับทุก i ที่ 1\leq i\leq 4 ช่อง A_i และ A_{i+1} แชร์มุมหรือด้านร่วมกัน
- ศูนย์กลางของช่อง A_1, A_2, A_3, A_4 และ A_5 อยู่บนเส้นเดียวกันที่มีระยะสม่ำเสมอ

Input

อินพุตได้รับจาก Standard Input ในรูปแบบดังนี้:
H W
S_1
S_2
\vdots
S_H

Output

พิมพ์ห้าบรรทัดในรูปแบบดังต่อไปนี้ ให้ (R_1, C_1), (R_2, C_2), \ldots, (R_5, C_5) เป็นช่องในชุดที่ต้องการที่มี s, n, u, k และ e เขียนไว้ตามลำดับ บรรทัดที่ i ควรมี R_i และ C_i ในลำดับนี้โดยแยกด้วยช่องว่าง กล่าวอีกนัยหนึ่งพิมพ์ในรูปแบบดังต่อไปนี้:
R_1 C_1
R_2 C_2
\vdots
R_5 C_5

ดูตัวอย่างอินพุตและเอาต์พุตด้านล่าง

Constraints

- 5\leq H\leq 100
- 5\leq W\leq 100
- H และ W เป็นจำนวนเต็ม
- S_i เป็นสตริงที่มีความยาว W ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวเล็ก
- ตารางที่ให้มานั้นมีชุดของช่องที่ตรงตามเงื่อนไขเพียงชุดเดียว

ตัวอย่างอินพุต 1

6 6
vgxgpu
amkxks
zhkbpp
hykink
esnuke
zplvfj

ตัวอย่างเอาต์พุต 1

5 2
5 3
5 4
5 5
5 6

ทูเพิล (A_1, A_2, A_3, A_4, A_5)=((5,2), (5,3), (5,4), (5,5), (5,6)) ตรงตามเงื่อนไข แน่นอนว่าตัวอักษรที่เขียนไว้คือ s, n, u, k และ e สำหรับทุก 1\leq i\leq 4 ช่อง A_i และ A_{i+1} แชร์ด้านร่วมกัน และศูนย์กลางของช่องเป็นเส้นเดียวกัน

ตัวอย่างอินพุต 2

5 5
ezzzz
zkzzz
ezuzs
zzznz
zzzzs

ตัวอย่างเอาต์พุต 2

5 5
4 4
3 3
2 2
1 1

ทูเพิล (A_1, A_2, A_3, A_4, A_5)=((5,5), (4,4), (3,3), (2,2), (1,1)) ตรงตามเงื่อนไข อย่างไรก็ตาม (A_1, A_2, A_3, A_4, A_5)=((3,5), (4,4), (3,3), (2,2), (3,1)) ผิดเงื่อนไขข้อที่สามเพราะศูนย์กลางของช่องไม่อยู่บนเส้นเดียวกัน แม้ว่าจะตรงตามเงื่อนไขข้อแรกและข้อสอง

ตัวอย่างอินพุต 3

10 10
kseeusenuk
usesenesnn
kskekeeses
nesnusnkkn
snenuuenke
kukknkeuss
neunnennue
sknuessuku
nksneekknk
neeeuknenk

ตัวอย่างเอาต์พุต 3

9 3
8 3
7 3
6 3
5 3

มีตารางที่มี H แถวแนวนอนและ W คอลัมน์แนวตั้ง แต่ละเซลล์มีอักษรภาษาอังกฤษตัวพิมพ์เล็กเขียนไว้
เราแสดงด้วย (i, j) เซลล์ที่แถวที่ i จากด้านบนและคอลัมน์ที่ j จากด้านซ้าย
อักษรที่เขียนบนตารางแสดงด้วยสตริง H สตริง ได้แก่ S_1, S_2,\ldots, S_H ซึ่งแต่ละสตริงมีความยาว W
อักษรตัวที่ j ของ S_i แสดงอักษรที่เขียนบน (i, j)
มีชุดเซลล์ที่ต่อเนื่องกัน (แนวตั้ง แนวนอน หรือแนวทแยง) ที่ไม่ซ้ำกันในตาราง
โดยมี s, n, u, k และ e เขียนไว้ตามลำดับนี้
ค้นหาตำแหน่งของเซลล์ดังกล่าวและพิมพ์ออกมาในรูปแบบที่ระบุในส่วนผลลัพธ์ ทูเพิลของเซลล์ 5 เซลล์ (A_1,A_2,A_3,A_4,A_5) กล่าวกันว่าสร้างชุดของเซลล์ที่ต่อเนื่องกัน (ตั้งตรง แนวนอน หรือแนวทแยง) โดยเขียน s, n, u, k และ e ตามลำดับ
หากและเฉพาะเมื่อตรงตามเงื่อนไขทั้งหมดต่อไปนี้

- A_1,A_2,A_3,A_4 และ A_5 มีตัวอักษร s, n, u, k และ e เขียนตามลำดับ
- สำหรับ 1\leq i\leq 4 ทั้งหมด เซลล์ A_i และ A_{i+1} จะแบ่งปันมุมหรือด้านเดียวกัน
- จุดศูนย์กลางของ A_1,A_2,A_3,A_4 และ A_5 อยู่บนเส้นตรงเดียวกันโดยมีระยะห่างเท่าๆ กัน
อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
H W
S_1
S_2
\vdots
S_H

เอาต์พุต

พิมพ์ห้าบรรทัดในรูปแบบต่อไปนี้

ให้ (R_1,C_1), (R_2,C_2)\ldots,(R_5,C_5) เป็นเซลล์ในเซตที่ต้องการโดยเขียน s, n, u, k และ e ตามลำดับ
บรรทัดที่ i ควรมี R_i และ C_i ตามลำดับ โดยคั่นด้วยช่องว่าง
กล่าวอีกนัยหนึ่ง ให้พิมพ์ในรูปแบบต่อไปนี้:
R_1 C_1
R_2 C_2
\vdots
R_5 C_5

ดูตัวอย่างอินพุตและเอาต์พุตด้านล่าง

ข้อจำกัด

- 5\leq H\leq 100
- 5\leq W\leq 100
- H และ W เป็นจำนวนเต็ม - S_i คือสตริงที่มีความยาว W ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก
- ตารางที่กำหนดมีชุดเซลล์ที่สอดคล้องกันเฉพาะตัว

ตัวอย่างอินพุต 1

6 6
vgxgpu
amkxks
zhkbpp
hykink
esnuke
zplvfj

ตัวอย่างเอาต์พุต 1

5 2
5 3
5 4
5 5
5 6

ทูเพิล (A_1,A_2,A_3,A_4,A_5)=((5,2),(5,3),(5,4),(5,5),(5,6)) เป็นไปตามเงื่อนไข
ตัวอักษรที่เขียนบนทูเพิลคือ s, n, u, k และ e;
สำหรับ 1\leq i\leq 4 ทั้งหมด เซลล์ A_i และ A_{i+1} จะมีด้านร่วมกัน;
และจุดศูนย์กลางของเซลล์จะอยู่บนเส้นตรงเดียวกัน
ตัวอย่างอินพุต 2

5 5
ezzzz
zkzzz
ezuzs
zzznz
zzzzs

ตัวอย่างเอาต์พุต 2

5 5
4 4
3 3
2 2
1 1

ทูเพิล (A_1,A_2,A_3,A_4,A_5)=((5,5),(4,4),(3,3),(2,2),(1,1)) เป็นไปตามเงื่อนไข
อย่างไรก็ตาม ตัวอย่างเช่น (A_1,A_2,A_3,A_4,A_5)=((3,5),(4,4),(3,3),(2,2),(3,1)) ขัดต่อเงื่อนไขที่สามเนื่องจากจุดศูนย์กลางของเซลล์ไม่อยู่บนเส้นร่วม แม้ว่าจะเป็นไปตามเงื่อนไขแรกและที่สองก็ตาม
ตัวอย่างอินพุต 3

10 10
kseeusenuk
usesenesnn
kskekeeses
nesnusnkkn
snenuuenke
kukknkeuss
neunnennue
sknuessuku
nksneekknk
neeeuknenk

ตัวอย่างเอาต์พุต 3

9 3
8 3
7 3
6 3
5 3


คุณได้รับ N สตริง S_1, S_2, \dots, S_N ซึ่งแต่ละสตริงมีความยาว M และประกอบด้วยตัวอักษรภาษาอังกฤษตัวเล็ก ที่นี่ S_i เป็นสตริงที่แตกต่างกันทั้งหมด
กำหนดให้ตรวจสอบว่ามีวิธีการจัดเรียงสตริงเหล่านี้ใหม่เพื่อให้ได้ลำดับใหม่ของสตริง T_1, T_2, \dots, T_N หรือไม่ โดยที่:

- สำหรับจำนวนเต็มทั้งหมด i ที่อยู่ในช่วง 1 \le i \le N-1 สามารถเปลี่ยนแปลงตัวอักษรเพียงตัวเดียวของ T_i เป็นตัวอักษรภาษาอังกฤษตัวเล็กตัวอื่นเพื่อทำให้มันเท่ากับ T_{i+1} ได้หรือไม่

Input

ข้อมูลนำเข้าจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N M
S_1
S_2
\vdots
S_N

Output

พิมพ์ Yes ถ้าสามารถจัดเรียงชุดที่สอดคล้องได้; พิมพ์ No หากไม่สามารถทำได้

ข้อจำกัด

- 2 \le N \le 8
- 1 \le M \le 5
- S_i เป็นสตริงที่มีความยาว M ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก (1 ≤ i ≤ N)
- S_i เป็นค่าที่แตกต่างกันในแต่ละคู่

ตัวอย่าง Input 1

4 4
bbed
abcd
abed
fbed

ตัวอย่างOutput 1

Yes
สามารถจัดเรียงพวกเขาในลำดับนี้ได้: abcd, abed, bbed, fbed ลำดับนี้ตรงตามเงื่อนไขที่กำหนด

ตัวอย่างInput 2

2 5
abcde
abced

ตัวอย่าง Output 2

No

ไม่ว่าจะจัดเรียงสายอย่างไร เงื่อนไขก็ไม่เคยถูกต้องตามที่กำหนด

ตัวอย่างInput 3

8 4
fast
face
cast
race
fact
rice
nice
case

ตัวอย่าง Output 3

Yes

คุณจะได้รับ N Strings S_1, S_2, \dots,S_N, ความยาว M ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ ที่นี่ S_i มีความแตกต่างแบบคู่
ตรวจสอบว่าใครสามารถจัดเรียงสตริงเหล่านี้ใหม่เพื่อให้ได้ลำดับใหม่ของสตริง T_1, T_2, \dots, T_N เช่นนั้น:

- สำหรับจำนวนเต็มทั้งหมดฉันเช่นนั้น 1 \le i \le N-1, หนึ่งสามารถเปลี่ยนตัวอักษรหนึ่งตัวของ T_i เป็นตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กอีกตัวหนึ่งเพื่อให้เท่ากับ T_ {i+1}

ป้อนข้อมูล

อินพุตได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N M
S_1
S_2
\vdots
S_N

เอาท์พุท

พิมพ์ 'ใช่' ถ้าสามารถสร้างลำดับที่สอดคล้องกัน; พิมพ์ 'ไม่' อย่างอื่น

ข้อ จำกัด

- 2 \le N \le 8
- 1 \le M \le 5
- S_i เป็นสตริงที่มีความยาว m ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก (1 \le i \le N)
- S_i ทั้งหมดแตกต่างกัน

อินพุตตัวอย่าง 1

4 4
bbed
abcd
abed
fbed

ตัวอย่างเอาท์พุท 1

Yes

หนึ่งสามารถจัดเรียงใหม่ตามลำดับนี้: abcd, abed, bbed, fbed ลำดับนี้เป็นไปตามเงื่อนไข

อินพุตตัวอย่าง 2

2 5
abcde
abced

ตัวอย่างเอาท์พุท 2

No

ไม่ว่าจะจัดเรียงสตริงอย่างไร เงื่อนไขก็ไม่เคยสอดคล้อง

อินพุตตัวอย่าง 3

8 4
fast
face
cast
race
fact
rice
nice
case

ตัวอย่างเอาท์พุท 3

Yes

คุณจะได้รับสตริง N ตัว S_1,S_2,\dots,S_N โดยแต่ละตัวมีความยาว M ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก โดยที่ S_i จะแยกกันเป็นคู่
ตรวจสอบว่าสามารถจัดเรียงสตริงเหล่านี้ใหม่ได้หรือไม่เพื่อให้ได้ลำดับสตริงใหม่ T_1,T_2,\dots,T_N โดยที่:

- สำหรับจำนวนเต็ม i ทั้งหมดที่ 1 \le i \le N-1 คุณสามารถเปลี่ยนอักขระ T_i หนึ่งตัวเป็นตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กตัวอื่นเพื่อให้เท่ากับ T_{i+1}

อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N M
S_1
S_2
\vdots
S_N

เอาต์พุต

พิมพ์ ใช่ หากสามารถรับลำดับที่สอดคล้องกันได้ ให้พิมพ์ ไม่ใช่ ในกรณีอื่น

ข้อจำกัด

- 2 \le N \le 8
- 1 \le M \le 5
- S_i คือสตริงที่มีความยาว M ประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็ก (1 \le i \le N)
- S_i แตกต่างกันเป็นคู่

ตัวอย่างอินพุต 1

4 4
bbed
abcd
abed
fbed

ตัวอย่างเอาต์พุต 1

Yes

สามารถจัดเรียงใหม่ตามลำดับนี้ได้: abcd, abed, bbed, fbed ลำดับนี้เป็นไปตามเงื่อนไข

ตัวอย่างอินพุต 2

2 5
abcde
abced

ตัวอย่างเอาต์พุต 2

No

ไม่ว่าจะจัดเรียงสตริงใหม่อย่างไร ก็ไม่เคยเป็นไปตามเงื่อนไข

ตัวอย่างอินพุต 3

8 4
fast
face
cast
race
fact
rice
nice
case

ตัวอย่างเอาต์พุต 3

Yes


ทาคาฮาชิตัดสินใจมอบของขวัญชิ้นหนึ่งให้กับอาโอกิและอีกชิ้นหนึ่งให้กับสนู๊ค
มีของขวัญ N ชิ้นที่อาโอกิต้องการมอบให้
และค่าของของขวัญเหล่านั้นคือ A_1, A_2, \ldots,A_N
มีของขวัญ M ชิ้นที่สนู๊คต้องการมอบให้
และค่าของของขวัญเหล่านั้นคือ B_1, B_2, \ldots,B_M
ทาคาฮาชิต้องการเลือกของขวัญเพื่อให้ค่าของของขวัญทั้งสองชิ้นต่างกันไม่เกิน D
กำหนดว่าเขาสามารถเลือกคู่ของขวัญดังกล่าวได้หรือไม่ หากเขาเลือกได้ ให้พิมพ์ผลรวมสูงสุดของค่าของของขวัญที่เลือก

อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N M D
A_1 A_2 \ldots A_N
B_1 B_2 \ldots B_M

เอาต์พุต

หากเขาสามารถเลือกของขวัญเพื่อตอบสนองเงื่อนไขได้ ให้พิมพ์ผลรวมสูงสุดของค่าของของขวัญที่เลือก
หากเขาไม่สามารถตอบสนองเงื่อนไขได้ ให้พิมพ์ -1

ข้อจำกัด

- 1\leq N,M\leq 2\times 10^5
- 1\leq A_i,B_i\leq 10^{18}
- 0\leq D \leq 10^{18}
- ค่าทั้งหมดในอินพุตเป็นจำนวนเต็ม

ตัวอย่างอินพุต 1

2 3 2
3 10
2 5 15

ตัวอย่างเอาต์พุต 1

8

ค่าต่างของของขวัญทั้งสองชิ้นควรมีค่าไม่เกิน 2
หากเขาให้ของขวัญชิ้นหนึ่งที่มีค่า 3 แก่ Aoki และอีกชิ้นหนึ่งที่มีค่า 5 แก่ Snuke เงื่อนไขจะเป็นไปตามที่กำหนด โดยบรรลุผลรวมค่าสูงสุดที่เป็นไปได้
ดังนั้น ควรพิมพ์ 3+5=8

ตัวอย่างอินพุต 2

3 3 0
1 3 3
6 2 7

ตัวอย่างเอาต์พุต 2

-1

เขาไม่สามารถเลือกของขวัญเพื่อตอบสนองเงื่อนไขได้ โปรดทราบว่าของขวัญที่บุคคลหนึ่งๆ จะได้รับอาจมีของขวัญหลายชิ้นที่มีมูลค่าเท่ากัน

ตัวอย่างอินพุต 3

1 1 1000000000000000000
1000000000000000000
100000000000000000

ตัวอย่างเอาต์พุต 3

2000000000000000000

โปรดทราบว่าคำตอบอาจไม่พอดีกับชนิดจำนวนเต็ม 32 บิต

ตัวอย่างอินพุต 4

8 6 1
2 5 6 5 2 1 7 9
7 2 5 5 2 4

ตัวอย่างเอาต์พุต 4

14

ทาคาฮาชิตัดสินใจมอบของขวัญชิ้นหนึ่งให้กับอาโอกิและอีกชิ้นหนึ่งให้กับสนู๊ค
มีของขวัญ N ชิ้นที่อาโอกิต้องการมอบให้
และค่าของของขวัญเหล่านั้นคือ A_1, A_2, \ldots,A_N
มีของขวัญ M ชิ้นที่สนู๊คต้องการมอบให้
และค่าของของขวัญเหล่านั้นคือ B_1, B_2, \ldots,B_M
ทาคาฮาชิต้องการเลือกของขวัญเพื่อให้ค่าของของขวัญทั้งสองชิ้นต่างกันไม่เกิน D
กำหนดว่าเขาสามารถเลือกคู่ของขวัญดังกล่าวได้หรือไม่ หากเขาเลือกได้ ให้พิมพ์ผลรวมสูงสุดของค่าของของขวัญที่เลือก

อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N M D
A_1 A_2 \ldots A_N
B_1 B_2 \ldots B_M

เอาต์พุต

หากเขาสามารถเลือกของขวัญเพื่อตอบสนองเงื่อนไขได้ ให้พิมพ์ผลรวมสูงสุดของค่าของของขวัญที่เลือก
หากเขาไม่สามารถตอบสนองเงื่อนไขได้ ให้พิมพ์ -1

ข้อจำกัด

- 1\leq N,M\leq 2\times 10^5
- 1\leq A_i,B_i\leq 10^{18}
- 0\leq D \leq 10^{18}
- ค่าทั้งหมดในอินพุตเป็นจำนวนเต็ม

ตัวอย่างอินพุต 1

2 3 2
3 10
2 5 15

ตัวอย่างเอาต์พุต 1

8

ค่าต่างของของขวัญทั้งสองชิ้นควรไม่เกิน 2
ถ้าเขาให้ของขวัญชิ้นหนึ่งที่มีค่า 3 แก่ Aoki และอีกชิ้นที่มีค่า 5 แก่ Snuke เงื่อนไขจะเป็นไปตามที่กำหนด โดยบรรลุผลรวมค่าสูงสุดที่เป็นไปได้
ดังนั้น ควรพิมพ์ 3+5=8

ตัวอย่างอินพุต 2

3 3 0
1 3 3
6 2 7

ตัวอย่างเอาต์พุต 2

-1

เขาไม่สามารถเลือกของขวัญเพื่อตอบสนองเงื่อนไขได้ โปรดทราบว่าของขวัญที่บุคคลหนึ่งๆ จะได้รับอาจมีของขวัญหลายชิ้นที่มีมูลค่าเท่ากัน

ตัวอย่างอินพุต 3

1 1 1000000000000000000
1000000000000000000
1000000000000000000

ตัวอย่างเอาต์พุต 3

2000000000000000000

โปรดทราบว่าคำตอบอาจไม่พอดีกับชนิดจำนวนเต็ม 32 บิต

ตัวอย่างอินพุต 4

8 6 1
2 5 6 5 2 1 7 9
7 2 5 5 2 4

ตัวอย่างเอาต์พุต 4

14

ทาคาฮาชิได้ตัดสินใจให้ของขวัญหนึ่งชิ้นแก่เอโอกิและอีกชิ้นแก่สึนุกะ
มีตัวเลือกเป็นของขวัญสำหรับเอโอกิทั้งหมด N ชิ้น
และค่าของพวกเขาคือ A_1, A_2, \ ldots, A_N
มีตัวเลือกเป็นของขวัญสำหรับ Snuke
และค่าของพวกเขาคือ B_1, B_2, \ ldots, B_M
Takahashi ต้องการเลือกของขวัญเพื่อให้ความแตกต่างของค่าของของขวัญทั้งสองไม่เกิน D.
ตรวจสอบว่าเขาสามารถเลือกของขวัญคู่ดังกล่าวได้หรือไม่ หากเขาทำได้ให้พิมพ์ผลรวมสูงสุดของค่าของของขวัญที่เลือก

ป้อนข้อมูล

อินพุตได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N M D
A_1 A_2 \ldots A_N
B_1 B_2 \ldots B_M

เอาท์พุท

หากเขาสามารถเลือกของขวัญเพื่อให้เป็นไปตามเงื่อนไข
พิมพ์ผลรวมสูงสุดของค่าของของขวัญที่เลือก
หากเขาไม่สามารถตอบสนองสภาพได้ให้พิมพ์ -1

ข้อ จำกัด

- 1\leq N,M\leq 2\times 10^5
- 1\leq A_i,B_i\leq 10^{18}
- 0\leq D \leq 10^{18}
- ค่าทั้งหมดในอินพุตเป็นจำนวนเต็ม

อินพุตตัวอย่าง 1

2 3 2
3 10
2 5 15

ตัวอย่างเอาท์พุท 1

8

ความแตกต่างของค่าของของขวัญทั้งสองควรเป็นอย่างมาก 2
หากเขาให้ของขวัญที่มีค่า 3 ให้กับ Aoki และของขวัญที่มีค่า 5 ให้กับ Snuke เงื่อนไขจะเป็นที่พอใจและบรรลุผลรวมสูงสุดของค่าที่เป็นไปได้
ดังนั้นควรพิมพ์ 3+5 = 8

อินพุตตัวอย่าง 2

3 3 0
1 3 3
6 2 7

ตัวอย่างเอาท์พุท 2

-1

เขาไม่สามารถเลือกของขวัญเพื่อให้เป็นไปตามเงื่อนไข
โปรดทราบว่าตัวเลือกรับของขวัญสำหรับบุคคลอาจมีของขวัญหลายชิ้นที่มีค่าเท่ากัน

อินพุตตัวอย่าง 3

1 1 1000000000000000000
1000000000000000000
1000000000000000000

ตัวอย่างเอาท์พุท 3

20000000000000000

โปรดทราบว่าคำตอบอาจไม่พอดีกับประเภทจำนวนเต็ม 32 บิต

อินพุตตัวอย่าง 4

8 6 1
2 5 6 5 2 1 7 9
7 2 5 5 2 4

ตัวอย่างเอาท์พุท 4

14


มีกราฟไม่มีทิศทางที่มี N จุดยอด ระบุหมายเลข 1 ถึง N และเริ่มต้นด้วย 0 ขอบ
ให้ Q คำถาม ให้วิเคราะห์ตามลำดับ หลังจากจัดการคำถามแต่ละข้อแล้ว ให้พิมพ์จำนวนจุดยอดที่ไม่ได้เชื่อมต่อกับจุดยอดอื่น ๆ ด้วยขอบ
คำถามที่ i, \mathrm{query}_i, มีสองประเภทดังนี้

-
1 u v: เชื่อมต่อจุดยอด u และจุดยอด v ด้วยขอบ รับรองได้ว่าเมื่อมีคำถามนี้ จุดยอด u และจุดยอด v ไม่ได้เชื่อมต่อกันด้วยขอบ

-
2 v: ลบขอบทั้งหมดที่เชื่อมต่อจุดยอด v กับจุดยอดอื่น ๆ (จุดยอด v เอง ไม่ถูกลบ)

Input

ข้อมูลนำเข้ามาจาก Standard Input ในรูปแบบดังนี้:
N Q
\mathrm{query}_1
\mathrm{query}_2
\vdots
\mathrm{query}_Q

Output

พิมพ์ Q บรรทัด
บรรทัดที่ i (1\leq i\leq Q) ควรแสดงจำนวนจุดยอดที่ไม่ได้เชื่อมต่อกับจุดยอดอื่น ๆ ด้วยขอบ

ข้อจำกัด

- 2 \leq N\leq 3\times 10^5
- 1 \leq Q\leq 3\times 10^5
- สำหรับคำถามประเภทแรก, 1\leq u,v\leq N และ u\neq v
- สำหรับคำถามประเภทที่สอง, 1\leq v\leq N
- ก่อนที่จะมีคำถามประเภทแรกจะได้รับ ไม่มีขอบระหว่างจุดยอด u และ v
- ค่าทั้งหมดในข้อมูลนำเข้าเป็นจำนวนเต็ม

ตัวอย่างInput 1

3 7
1 1 2
1 1 3
1 2 3
2 1
1 1 2
2 2
1 1 2

ตัวอย่างOutput 1

1
0
0
1
0
3
1

หลังจากคำถามแรก จุดยอด 1 และจุดยอด 2 ถูกเชื่อมต่อกันด้วยขอบ แต่จุดยอด 3 ไม่ได้เชื่อมต่อกับจุดยอดอื่น ๆ
ดังนั้น จึงควรพิมพ์ 1 ในบรรทัดแรก
หลังจากคำถามที่สาม คู่ของจุดยอดต่าง ๆ ทั้งหมดถูกเชื่อมต่อกันด้วยขอบ
อย่างไรก็ตามคำถามที่สี่ขอให้ลบขอบทั้งหมดที่เชื่อมต่อจุดยอด 1 กับจุดยอดอื่น ๆ โดยเฉพาะให้ลบขอบระหว่างจุดยอด 1 และจุดยอด 2 และอีกอันหนึ่งระหว่างจุดยอด 1 และจุดยอด 3
ผลลัพธ์คือจุดยอด 2 และจุดยอด 3 เชื่อมต่อกัน ในขณะที่จุดยอด 1 ไม่ได้เชื่อมต่อกับจุดยอดอื่น ๆ ด้วยขอบ
ดังนั้น จึงควรพิมพ์ 0 และ 1 ในบรรทัดที่สามและสี่ ตามลำดับ

ตัวอย่างInput 2

2 1
2 1

ตัวอย่างOutput 2

2

เมื่อมีคำถามประเภทที่สอง อาจไม่มีขอบที่เชื่อมต่อนั้นระหว่างจุดยอดและจุดยอดอื่น ๆ

มีกราฟที่ไม่มีทิศทางซึ่งมีจุดยอด N จุดซึ่งมีหมายเลขตั้งแต่ 1 ถึง N และมีขอบเริ่มต้น 0 ขอบ
เมื่อกำหนดคิวรี Q รายการ ให้ดำเนินการตามลำดับ หลังจากดำเนินการคิวรีแต่ละรายการแล้ว ให้พิมพ์จำนวนจุดยอดที่ไม่เชื่อมต่อกับจุดยอดอื่นใดด้วยขอบ
คิวรีที่ i คือ \mathrm{query}_i ซึ่งเป็นหนึ่งในสองประเภทต่อไปนี้

-
1 u v: เชื่อมต่อจุดยอด u และจุดยอด v ด้วยขอบ รับรองว่าเมื่อกำหนดคิวรีนี้ จุดยอด u และจุดยอด v จะไม่เชื่อมต่อด้วยขอบ

-
2 v: ลบขอบทั้งหมดที่เชื่อมต่อจุดยอด v และจุดยอดอื่น (จุดยอด v เองจะไม่ถูกลบออก)

อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N Q
\mathrm{query}_1
\mathrm{query}_2
\vdots
\mathrm{query}_Q

เอาต์พุต

พิมพ์ Q บรรทัด
บรรทัดที่ i (1\leq i\leq Q) ควรมีจำนวนจุดยอดที่ไม่เชื่อมต่อกับจุดยอดอื่นใดด้วยขอบ

ข้อจำกัด

- 2 \leq N\leq 3\times 10^5
- 1 \leq Q\leq 3\times 10^5
- สำหรับแต่ละแบบสอบถามประเภทแรก 1\leq u,v\leq N และ u\neq v
- สำหรับแต่ละแบบสอบถามประเภทที่สอง 1\leq v\leq N
- ก่อนที่จะกำหนดแบบสอบถามประเภทแรก จะไม่มีขอบระหว่างจุดยอด u และ v
- ค่าทั้งหมดในอินพุตเป็นจำนวนเต็ม

ตัวอย่างอินพุต 1

3 7
1 1 2
1 1 3
1 2 3
2 1
1 1 2
2 2
1 1 2

ตัวอย่างเอาต์พุต 1

1
0
0
1
0
3
1

หลังจากแบบสอบถามแรก จุดยอด 1 และจุดยอด 2 เชื่อมต่อกันด้วยขอบ แต่จุดยอด 3 ไม่เชื่อมต่อกับจุดยอดอื่นใด
ดังนั้น 1 ควรพิมพ์ในบรรทัดแรก
หลังจากแบบสอบถามที่สาม จุดยอดต่าง ๆ ทั้งหมดเชื่อมต่อกันด้วยขอบ
อย่างไรก็ตาม แบบสอบถามที่สี่ขอให้ลบขอบทั้งหมดที่เชื่อมต่อจุดยอด 1 และจุดยอดอื่น ๆ โดยเฉพาะการลบขอบระหว่างจุดยอด 1 และจุดยอด 2 และขอบอื่นระหว่างจุดยอด 1 และจุดยอด 3
ผลลัพธ์คือ จุดยอด 2 และจุดยอด 3 เชื่อมต่อกันในขณะที่จุดยอด 1 ไม่เชื่อมต่อกับจุดยอดอื่นใดด้วยขอบ ดังนั้นควรพิมพ์ 0 และ 1 ในบรรทัดที่สามและสี่ตามลำดับ

ตัวอย่างอินพุต 2

2 1
2 1

ตัวอย่างเอาต์พุต 2

2

เมื่อกำหนดแบบสอบถามประเภทที่สอง อาจไม่มีขอบที่เชื่อมต่อจุดยอดนั้นกับจุดยอดอื่นๆ

มีกราฟที่ไม่มีทิศทางที่มีจุดยอด N จุดที่มีหมายเลข 1 ถึง N และในตอนแรกมีขอบ 0
เมื่อได้รับแบบสอบถาม Q ให้ประมวลผลตามลำดับ  หลังจากประมวลผลแต่ละแบบสอบถามแล้ว
พิมพ์จำนวนจุดยอดที่ไม่เชื่อมต่อกับจุดยอดอื่น ๆ ด้วยขอบ
แบบสอบถามที่ i\ mathrm{query}_i เป็นหนึ่งในสองประเภทต่อไปนี้

-
1 u v: เชื่อมต่อจุดยอด U และจุดยอด V ด้วยขอบ  รับประกันได้ว่าเมื่อมีแบบสอบถามนี้ จุดยอด u และจุดยอด v จะไม่เชื่อมต่อกันด้วยขอบ

-
2 v: ลบขอบทั้งหมดที่เชื่อมต่อจุดยอด V และจุดยอดอื่นๆ  (Vertex v เองไม่ได้ถูกลบออก)

อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N Q
\mathrm{แบบสอบถาม}_1
\mathrm{แบบสอบถาม}_2
\vdots
\mathrm{แบบสอบถาม}_Q

ผลิตภัณฑ์

พิมพ์บรรทัด Q
เส้นที่ i (1\leq i\leq Q) ควรมีจํานวนจุดยอดที่ไม่ได้เชื่อมต่อกับจุดยอดอื่นด้วยขอบ

ข้อจํากัด

 2 \leq N\leq 3\times 10^5
- 1 \leq Q\leq 3\times 10^5
- สําหรับแต่ละแบบสอบถามประเภทแรก 1\leq u,v\leq N และ u\neq v
- สําหรับแต่ละแบบสอบถามประเภทที่สอง 1\leq v\leq N
- ก่อนที่แบบสอบถามประเภทแรกจะได้รับ จะไม่มีขอบระหว่างจุดยอด u และ v
- ค่าทั้งหมดในอินพุตเป็นจํานวนเต็ม

ตัวอย่างข้อมูลนำเข้า 1

3 7
1 1 2
1 1 3
1 2 3
2 1
1 1 2
2 2
1 1 2

ตัวอย่างเอาต์พุต 1

1
0
0
1
0
3
1

หลังจากคิวรีแรก จุดยอด 1 และจุดยอด 2 จะเชื่อมต่อกันด้วยขอบ แต่จุดยอด 3 ไม่ได้เชื่อมต่อกับจุดยอดอื่น ๆ
ดังนั้นควรพิมพ์ 1 ในบรรทัดแรก
หลังจากแบบสอบถามที่สาม จุดยอดที่แตกต่างกันทุกคู่จะเชื่อมต่อกันด้วยขอบ
อย่างไรก็ตาม คิวรีที่สี่ขอให้ลบขอบทั้งหมดที่เชื่อมต่อจุดยอด 1 กับจุดยอดอื่น ๆ โดยเฉพาะเพื่อลบขอบระหว่างจุดยอด 1 และจุดยอด 2 และอีกขอบหนึ่งระหว่างจุดยอด 1 และจุดยอด 3
ด้วยเหตุนี้ จุดยอด 2 และจุดยอด 3 จึงเชื่อมต่อกัน ในขณะที่จุดยอด 1 ไม่ได้เชื่อมต่อกับจุดยอดอื่นด้วยขอบ
ดังนั้น จึงควรพิมพ์ 0 และ 1 ในบรรทัดที่สามและสี่ ตามลำดับ

ตัวอย่างข้อมูลนำเข้า 2

2 1
2 1

ตัวอย่างข้อมูลส่งออก 2

2

เมื่อมีการระบุแบบสอบถามประเภทที่สอง อาจไม่มีขอบที่เชื่อมต่อจุดยอดนั้นกับจุดยอดอื่นๆ


บนกระดานดำมีชุด S_1,S_2,\dots,S_N จำนวน N ชุดที่ประกอบด้วยจำนวนเต็มระหว่าง 1 ถึง M โดยที่ S_i = \lbrace S_{i,1},S_{i,2},\dots,S_{i,A_i} \rbrace
คุณสามารถดำเนินการต่อไปนี้ได้หลายครั้งเท่าที่ต้องการ (อาจเป็นศูนย์ก็ได้):

- เลือกชุด X และ Y สองชุดที่มีองค์ประกอบร่วมอย่างน้อยหนึ่งตัว ลบออกจากกระดานดำ แล้วเขียน X\cup Y บนกระดานดำแทน

โดยที่ X\cup Y หมายถึงชุดที่ประกอบด้วยองค์ประกอบที่อยู่ใน X และ Y อย่างน้อยหนึ่งตัว
พิจารณาว่าสามารถหาชุดที่มีทั้ง 1 และ M ได้หรือไม่ หากทำได้ ให้หาจำนวนการดำเนินการขั้นต่ำที่จำเป็นในการหาค่าดังกล่าว
อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N M
A_1
S_{1,1} S_{1,2} \dots S_{1,A_1}
A_2
S_{2,1} S_{2,2} \dots S_{2,A_2}
\vdots
A_N
S_{N,1} S_{N,2} \dots S_{N,A_N}

เอาต์พุต

หากสามารถหาค่าเซตที่มีทั้ง 1 และ M ได้ ให้พิมพ์จำนวนการดำเนินการขั้นต่ำที่จำเป็นในการหาค่าดังกล่าว หากทำไม่ได้ ให้พิมพ์ -1 แทน
ข้อจำกัด

- 1 \le N \le 2 \times 10^5
- 2 \le M \le 2 \times 10^5
- 1 \le \sum_{i=1}^{N} A_i \le 5 \times 10^5
- 1 \le S_{i,j} \le M(1 \le i \le N,1 \le j \le A_i)
- S_{i,j} \neq S_{i,k}(1 \le j < k \le A_i)
- ค่าทั้งหมดในอินพุตเป็นจำนวนเต็ม

ตัวอย่างอินพุต 1

3 5
2
1 2
2
2 3
3
3 4 5

ตัวอย่างเอาต์พุต 1

2

ขั้นแรก เลือกและลบ \lbrace 1,2 \rbrace และ \lbrace 2,3 \rbrace เพื่อให้ได้ \lbrace 1,2,3 \rbrace จากนั้นเลือกและลบ \lbrace 1,2,3 \rbrace และ \lbrace 3,4,5 \rbrace เพื่อให้ได้ \lbrace 1,2,3,4,5 \rbrace
ดังนั้น จึงสามารถได้ชุดที่มีทั้ง 1 และ M ด้วยการดำเนินการสองครั้ง เนื่องจากไม่สามารถบรรลุวัตถุประสงค์ได้โดยการดำเนินการเพียงครั้งเดียว คำตอบคือ 2

ตัวอย่างอินพุต 2

1 2
2
1 2

ตัวอย่างเอาต์พุต 2

0

S_1 มีทั้ง 1 และ M อยู่แล้ว ดังนั้น จำนวนการดำเนินการขั้นต่ำที่จำเป็นคือ 0

ตัวอย่างอินพุต 3

3 5
2
1 3
2
2 4
3
2 4 5

ตัวอย่างเอาต์พุต 3

-1

ตัวอย่างอินพุต 4

4 8
3
1 3 5
2
1 2
3
2 4 7
4
4 6 7 8

ตัวอย่างเอาต์พุต 4

2

บนกระดานดำมีชุด N S_1, S_2, \ dots, S_N ประกอบด้วยจำนวนเต็มระหว่าง 1 ถึง M ที่นี่, S_i = \ lbrace S_ {i, 1}, S_ {i, 2}, \ dots, S_ {i , A_i} \ rbrace
คุณสามารถดำเนินการต่อไปนี้ได้หลายครั้ง (อาจเป็นศูนย์):

- เลือกสองชุด X และ Y ด้วยองค์ประกอบทั่วไปอย่างน้อยหนึ่งองค์ประกอบ ลบออกจากกระดานดำและเขียน X \ cup Y บนกระดานดำแทน

ที่นี่ X \ cup Y หมายถึงชุดที่ประกอบด้วยองค์ประกอบที่มีอยู่ในอย่างน้อยหนึ่งใน X และ Y
ตรวจสอบว่าสามารถสร้างชุดที่มีทั้ง 1 และ M ได้หรือไม่ หากเป็นไปได้ให้ค้นหาจำนวนขั้นต่ำของการดำเนินการที่จำเป็นในการรับ

ป้อนข้อมูล

อินพุตได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N M
A_1
S_{1,1} S_{1,2} \dots S_{1,A_1}
A_2
S_{2,1} S_{2,2} \dots S_{2,A_2}
\vdots
A_N
S_{N,1} S_{N,2} \dots S_{N,A_N}

เอาท์พุท

หากสามารถสร้างชุดที่มีทั้ง 1 และ M ได้ ให้พิมพ์จำนวนขั้นต่ำของการดำเนินการที่จำเป็นในการรับมัน; หากเป็นไปไม่ได้ให้พิมพ์ -1 แทน

ข้อ จำกัด

- 1 \le N \le 2 \times 10^5
- 2 \le M \le 2 \times 10^5
- 1 \le \sum_{i=1}^{N} A_i \le 5 \times 10^5
- 1 \le S_{i,j} \le M(1 \le i \le N,1 \le j \le A_i)
- S_{i,j} \neq S_{i,k}(1 \le j < k \le A_i)
- ค่าทั้งหมดในอินพุตเป็นจำนวนเต็ม

อินพุตตัวอย่าง 1

3 5
2
1 2
2
2 3
3
3 4 5

ตัวอย่างเอาท์พุท 1

2

ก่อนอื่นเลือกและลบ \ lbrace 1,2 \ rbrace และ \ lbrace 2,3 \ rbrace เพื่อรับ \ lbrace 1,2,3 \ rbrace
จากนั้นเลือกและลบ \ lbrace 1,2,3 \ rbrace และ \ lbrace 3,4,5 \ rbrace เพื่อรับ \ lbrace 1,2,3,4,5 \ rbrace
ดังนั้นหนึ่งสามารถรับชุดที่มีทั้ง 1 และ M พร้อมสองการดำเนินการ เนื่องจากเราไม่สามารถบรรลุวัตถุประสงค์ได้โดยการดำเนินการเพียงครั้งเดียวคำตอบคือ 2

อินพุตตัวอย่าง 2

1 2
2
1 2

ตัวอย่างเอาท์พุท 2

0

S_1 มีทั้ง 1 และ M ดังนั้นจำนวนขั้นต่ำของการดำเนินการที่ต้องการคือ 0

อินพุตตัวอย่าง 3

3 5
2
1 3
2
2 4
3
2 4 5

ตัวอย่างเอาท์พุท 3

-1

อินพุตตัวอย่าง 4

4 8
3
1 3 5
2
1 2
3
2 4 7
4
4 6 7 8

ตัวอย่างเอาท์พุท 4

2

บนกระดานดำมีเซต N เซต S_1,S_2,\dots,S_N ซึ่งประกอบด้วยจำนวนเต็มระหว่าง 1 ถึง M ซึ่ง S_i = \lbrace S_{i,1},S_{i,2},\dots,S_{i,A_i} \rbrace
คุณสามารถทำการกระทำดังต่อไปนี้จำนวนครั้งตามต้องการ (อาจเป็นศูนย์ครั้งก็ได้):

- เลือกสองเซต X และ Y ที่มีองค์ประกอบอย่างน้อยหนึ่งองค์ประกอบร่วมกัน ลบเซตเหล่านั้นออกจากกระดานดำ แล้วเขียน X\cup Y ลงบนกระดานดำแทน

ที่นี่ X\cup Y หมายถึงเซตที่ประกอบด้วยองค์ประกอบที่อยู่ใน X หรือ Y อย่างน้อยหนึ่งองค์ประกอบ
ตรวจสอบว่าคุณสามารถสร้างเซตที่มีทั้ง 1 และ M ได้หรือไม่ หากสามารถทำได้ ให้หาจำนวนการกระทำขั้นต่ำที่จำเป็นในการทำให้เสร็จ

ข้อมูลนำเข้า

ข้อมูลนำเข้าจะได้รับจาก Standard Input ในรูปแบบต่อไปนี้:
N M
A_1
S_{1,1} S_{1,2} \dots S_{1,A_1}
A_2
S_{2,1} S_{2,2} \dots S_{2,A_2}
\vdots
A_N
S_{N,1} S_{N,2} \dots S_{N,A_N}

ข้อมูลส่งออก

ถ้าสามารถสร้างเซตที่มีทั้ง 1 และ M ได้ ให้พิมพ์จำนวนการกระทำขั้นต่ำที่จำเป็นในการทำให้เสร็จ; หากไม่สามารถทำได้ ให้พิมพ์ -1 แทน

เงื่อนไข

- 1 \le N \le 2 \times 10^5
- 2 \le M \le 2 \times 10^5
- 1 \le \sum_{i=1}^{N} A_i \le 5 \times 10^5
- 1 \le S_{i,j} \le M(1 \le i \le N,1 \le j \le A_i)
- S_{i,j} \neq S_{i,k}(1 \le j < k \le A_i)
- ค่าทั้งหมดในข้อมูลนำเข้าเป็นจำนวนเต็ม

ตัวอย่างข้อมูลนำเข้า 1

3 5
2
1 2
2
2 3
3
3 4 5

ตัวอย่างข้อมูลส่งออก 1

2

ขั้นแรกให้เลือกและลบ \lbrace 1,2 \rbrace และ \lbrace 2,3 \rbrace เพื่อให้ได้ \lbrace 1,2,3 \rbrace
จากนั้นเลือกและลบ \lbrace 1,2,3 \rbrace และ \lbrace 3,4,5 \rbrace เพื่อให้ได้ \lbrace 1,2,3,4,5 \rbrace
ดังนั้นคุณสามารถสร้างเซตที่มีทั้ง 1 และ M ได้ด้วยการกระทำสองครั้ง เนื่องจากไม่สามารถบรรลุเป้าหมายได้โดยการดำเนินการเพียงครั้งเดียว คำตอบคือ 2

ตัวอย่างข้อมูลนำเข้า 2

1 2
2
1 2

ตัวอย่างข้อมูลส่งออก 2

0

S_1 มีทั้ง 1 และ M อยู่แล้ว ดังนั้นจำนวนการกระทำขั้นต่ำที่จำเป็นคือ 0

ตัวอย่างข้อมูลนำเข้า 3

3 5
2
1 3
2
2 4
3
2 4 5

ตัวอย่างข้อมูลส่งออก 3

-1

ตัวอย่างข้อมูลนำเข้า 4

4 8
3
1 3 5
2
1 2
3
2 4 7
4
4 6 7 8

ตัวอย่างข้อมูลส่งออก 4

2


อักขระสองตัว x และ y จะถูกเรียกว่าอักขระที่คล้ายกันก็ต่อเมื่อตรงตามเงื่อนไขต่อไปนี้ข้อใดข้อหนึ่งเท่านั้น:

- x และ y เป็นอักขระตัวเดียวกัน
- x และ y ตัวหนึ่งมีค่าเป็น 1 และอีกตัวมีค่าเป็น l
- x และ y ตัวหนึ่งมีค่าเป็น 0 และอีกตัวมีค่าเป็น o

สตริงสองตัว S และ T ซึ่งแต่ละตัวมีความยาว N จะถูกเรียกว่าสตริงที่คล้ายกันก็ต่อเมื่อ:

- สำหรับ i\ ทั้งหมด (1\leq i\leq N) อักขระตัวที่ i ของ S และอักขระตัวที่ i ของ T จะเป็นอักขระที่คล้ายกัน

เมื่อกำหนดให้มีสตริงที่มีความยาว N ตัวคือ S และ T ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวเลข ให้พิจารณาว่า S และ T เป็นสตริงที่คล้ายกันหรือไม่

อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N
S
T

เอาต์พุต

พิมพ์ Yes หาก S และ T เป็นสตริงที่คล้ายกัน และ No หากไม่ใช่
ข้อจำกัด

- N เป็นจำนวนเต็มระหว่าง 1 ถึง 100
- S และ T แต่ละตัวเป็นสตริงที่มีความยาว N ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวเลข

ตัวอย่างอินพุต 1

3
l0w
1ow

ตัวอย่างเอาต์พุต 1

Yes

อักขระตัวแรกของ S คือ l และอักขระตัวแรกของ T คือ 1 ซึ่งเป็นอักขระที่คล้ายกัน
อักขระตัวที่ 2 ของ S คือ 0 และอักขระตัวที่ 2 ของ T คือ o ซึ่งเป็นอักขระที่คล้ายกัน
อักขระตัวที่ 3 ของ S คือ w และอักขระตัวที่ 3 ของ T คือ w ซึ่งเป็นอักขระที่คล้ายกัน
ดังนั้น S และ T จึงเป็นสตริงที่คล้ายกัน

ตัวอย่างอินพุต 2

3
abc
arc

ตัวอย่างเอาต์พุต 2

No

อักขระตัวที่ 2 ของ S คือ b และอักขระตัวที่ 2 ของ T คือ r ซึ่งไม่ใช่อักขระที่คล้ายกัน
ดังนั้น S และ T จึงไม่ใช่สตริงที่คล้ายกัน
ตัวอย่างอินพุต 3

4
nok0
n0ko

ตัวอย่างเอาต์พุต 3

อักขระสองตัว x และ y จะถูกเรียกว่าอักขระที่คล้ายกันก็ต่อเมื่อตรงตามเงื่อนไขต่อไปนี้ข้อใดข้อหนึ่งเท่านั้น:

- x และ y เป็นอักขระตัวเดียวกัน
- x และ y ตัวหนึ่งมีค่าเป็น 1 และอีกตัวมีค่าเป็น l
- x และ y ตัวหนึ่งมีค่าเป็น 0 และอีกตัวมีค่าเป็น o

สตริงสองตัว S และ T ซึ่งแต่ละตัวมีความยาว N จะถูกเรียกว่าสตริงที่คล้ายกันก็ต่อเมื่อ:

- สำหรับ i\ ทั้งหมด (1\leq i\leq N) อักขระตัวที่ i ของ S และอักขระตัวที่ i ของ T จะเป็นอักขระที่คล้ายกัน

เมื่อกำหนดให้มีสตริงที่มีความยาว N ตัวคือ S และ T ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวเลข ให้พิจารณาว่า S และ T เป็นสตริงที่คล้ายกันหรือไม่

อินพุต

อินพุตจะได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N
S
T

เอาต์พุต

พิมพ์ ใช่ หาก S และ T เป็นสตริงที่คล้ายกัน และไม่ หากไม่ใช่
ข้อจำกัด

- N เป็นจำนวนเต็มระหว่าง 1 ถึง 100
- S และ T แต่ละตัวเป็นสตริงที่มีความยาว N ซึ่งประกอบด้วยตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวเลข

ตัวอย่างอินพุต 1

3
l0w
1ow

ตัวอย่างเอาต์พุต 1

Yes

อักขระตัวแรกของ S คือ l และอักขระตัวแรกของ T คือ 1 ซึ่งเป็นอักขระที่คล้ายกัน
อักขระตัวที่ 2 ของ S คือ 0 และอักขระตัวที่ 2 ของ T คือ o ซึ่งเป็นอักขระที่คล้ายกัน
อักขระตัวที่ 3 ของ S คือ w และอักขระตัวที่ 3 ของ T คือ w ซึ่งเป็นอักขระที่คล้ายกัน
ดังนั้น S และ T จึงเป็นสตริงที่คล้ายกัน

ตัวอย่างอินพุต 2

3
abc
arc

ตัวอย่างเอาต์พุต 2

No

อักขระตัวที่ 2 ของ S คือ b และอักขระตัวที่ 2 ของ T คือ r ซึ่งไม่ใช่อักขระที่คล้ายกัน
ดังนั้น S และ T จึงไม่ใช่สตริงที่คล้ายกัน
ตัวอย่างอินพุต 3

4
nok0
n0ko

ตัวอย่างเอาต์พุต 3

Yes


มีคน N คนที่หมายเลข 1,2,\ldots,N อยู่ในรูปถ่าย M รูป ในแต่ละรูป พวกเขายืนเรียงแถวเดียวกัน ในรูปที่ i คนที่ j จากซ้ายคือคน a_{i,j}
คนสองคนที่ไม่ได้ยืนติดกันในรูปใดๆ อาจอยู่ในอารมณ์ไม่ดี
มีคนกี่คู่ที่อาจมีอารมณ์ไม่ดี ในที่นี้ เราจะไม่แยกคู่ของบุคคล x และบุคคล y และคู่ของบุคคล y และบุคคล x

อินพุต

อินพุตได้จากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N M
a_{1,1} \ldots a_{1,N}
\vdots
a_{M,1} \ldots a_{M,N}

เอาต์พุต

พิมพ์คำตอบ

ข้อจำกัด

- 2 \leq N \leq 50
- 1 \leq M \leq 50
- 1 \leq a_{i,j} \leq N
- a_{i,1},\ldots,a_{i,N} มี 1,\ldots,N แต่ละอันเพียงครั้งเดียว
- ค่าทั้งหมดในอินพุตเป็นจำนวนเต็ม

ตัวอย่างอินพุต 1

4 2
1 2 3 4
4 3 1 2

ตัวอย่างเอาต์พุต 1

2

คู่ของบุคคล 1 และบุคคล 4 และคู่ของบุคคล 2 และบุคคล 4 อาจอยู่ในอารมณ์ไม่ดี

ตัวอย่างอินพุต 2

3 3
1 2 3
3 1 2
1 2 3

ตัวอย่างเอาต์พุต 2

0

ตัวอย่างอินพุต 3

10 10
4 10 7 2 8 3 9 1 6 5
3 6 2 9 1 8 10 7 4 5
9 3 4 5 7 10 1 8 2 6
7 3 1 8 4 9 5 6 2 10
5 2 1 4 10 7 9 8 3 6
5 8 1 6 9 3 2 4 7 10
8 10 3 4 5 7 2 9 6 1
3 10 2 7 8 5 1 4 9 6
10 6 1 5 4 2 3 8 9 7
4 5 9 1 8 2 7 6 3 10

ผลลัพธ์ตัวอย่าง 3

6

N คนที่มีหมายเลข 1,2,\ldots,N อยู่ในรูป M ในแต่ละภาพถ่ายพวกเขายืนอยู่ในบรรทัดเดียว ในภาพ i-th คน j-th จากด้านซ้ายคือบุคคล a_ {i, j}
คนสองคนที่ไม่เคยยืนอยู่ข้างๆกันในรูปถ่ายใดๆ อาจมีอารมณ์ไม่ดี
มีคนกี่คู่ที่อารมณ์ไม่ดี? ที่นี่เราไม่ได้แยกแยะคู่ของคน X และบุคคล y และคู่ของคน y และ person x

ป้อนข้อมูล

อินพุตได้รับจากอินพุตมาตรฐานในรูปแบบต่อไปนี้:
N M
a_{1,1} \ldots a_{1,N}
\vdots
a_{M,1} \ldots a_{M,N}

เอาท์พุท

พิมพ์คำตอบ

ข้อ จำกัด

- 2 \leq N \leq 50
- 1 \leq M \leq 50
- 1 \leq a_{i,j} \leq N
- a_ {i, 1}, \ ldots, a_ {i, N} มีแต่ละ 1, \ ldots, N หนึ่งครั้ง
- ค่าทั้งหมดในอินพุตเป็นจำนวนเต็ม

อินพุตตัวอย่าง 1

4 2
1 2 3 4
4 3 1 2

ตัวอย่างเอาท์พุท 1

2

คู่ของบุคคลที่ 1 และบุคคล 4 และคู่ของบุคคล 2 และบุคคล 4 อาจอยู่ในอารมณ์ไม่ดี

อินพุตตัวอย่าง 2

3 3
1 2 3
3 1 2
1 2 3

ตัวอย่างเอาท์พุท 2

0

อินพุตตัวอย่าง 3

10 10
4 10 7 2 8 3 9 1 6 5
3 6 2 9 1 8 10 7 4 5
9 3 4 5 7 10 1 8 2 6
7 3 1 8 4 9 5 6 2 10
5 2 1 4 10 7 9 8 3 6
5 8 1 6 9 3 2 4 7 10
8 10 3 4 5 7 2 9 6 1
3 10 2 7 8 5 1 4 9 6
10 6 1 5 4 2 3 8 9 7
4 5 9 1 8 2 7 6 3 10

ตัวอย่างเอาท์พุท 3

6

มีคน N คนหมายเลข 1,2,\ldots,N อยู่ในรูปถ่าย M รูป ในแต่ละรูปพวกเขาจะยืนเรียงกันเป็นแถวเดียว ในรูปที่ i คนที่ j จากทางซ้ายจะเป็นคน a_{i,j}
คนสองคนที่ไม่เคยยืนข้างกันในรูปถ่ายใด ๆ อาจมีอารมณ์ไม่ดีได้
มีกี่คู่คนที่อาจมีอารมณ์ไม่ดี? ที่นี่ เราไม่แยกแยะคู่คน x และคน y กับคู่คน y และคน x

Input

อินพุตได้รับจากมาตรฐานในรูปแบบต่อไปนี้:
N M
a_{1,1} \ldots a_{1,N}
\vdots
a_{M,1} \ldots a_{M,N}

Output

พิมพ์คำตอบ

ข้อจำกัด

- 2 \leq N \leq 50
- 1 \leq M \leq 50
- 1 \leq a_{i,j} \leq N
- a_{i,1},\ldots,a_{i,N} ประกอบด้วยแต่ละค่า 1,\ldots,N เพียงครั้งเดียว
- ค่าทั้งหมดในอินพุตเป็นจำนวนเต็ม

ตัวอย่างInput 1

4 2
1 2 3 4
4 3 1 2

ตัวอย่างOutput 1

2

คู่ของคนที่ 1 และคนที่ 4, และคู่ของคนที่ 2 และคนที่ 4 อาจมีอารมณ์ไม่ดี

ตัวอย่างInput 2

3 3
1 2 3
3 1 2
1 2 3

ตัวอย่างOutput 2

0

ตัวอย่างInput 3

10 10
4 10 7 2 8 3 9 1 6 5
3 6 2 9 1 8 10 7 4 5
9 3 4 5 7 10 1 8 2 6
7 3 1 8 4 9 5 6 2 10
5 2 1 4 10 7 9 8 3 6
5 8 1 6 9 3 2 4 7 10
8 10 3 4 5 7 2 9 6 1
3 10 2 7 8 5 1 4 9 6
10 6 1 5 4 2 3 8 9 7
4 5 9 1 8 2 7 6 3 10

ตัวอย่างOutput 3

6