โจทย์ "หางไก่ cocktail"
คุณเพิ่งได้รับงานใหม่ที่ฟาร์มเลี้ยงไก่แห่งหนึ่ง ซึ่งที่ฟาร์มนี้มีไก่พันธุ์พิเศษอยู่หลายตัว ไก่เหล่านี้มีความแปลกอยู่หลายอย่าง อย่างแรกคือ ไก่เหล่านี้จะร่วมกันฟักไข่เป็นคู่ ๆ อย่างที่สองคือแต่ละตัวจะมีจำนวนหางได้หลายหาง ตั้งแต่หนึ่งหาง สองหาง หนึ่งแสนหาง หรือแม้แต่ไม่มีหาง
นักวิทยาศาสตร์บอกว่า ถ้าคุณอยากได้ลูกไก่ที่สุขภาพดี แข็งแรง ไก่สองตัวที่ร่วมกันฟักไข่จะต้องมีจำนวนหางรวมกันเท่ากับ A พอดี ถามว่า คุณจะจับคู่ไก่สองตัวให้จำนวนหางเท่ากับ A ได้กี่วิธี
งานของคุณ
รับค่าจำนวนหางของไก่แต่ละตัวในฟาร์ม และหาว่า จะจับคู่ไก่สองตัวให้จำนวนหางรวม A หางได้กี่วิธี
ข้อมูลนำเข้า
บรรทัดแรกมีจำนวนเต็มหนึ่งจำนวน N แทนจำนวนไก่ที่คุณมี (1≤N≤1,000,000) อีก N บรรทัดถัดมา มีจำนวนเต็มบรรทัดละหนึ่งตัว บอกจำนวนหางของไก่แต่ละตัว โดยไก่แต่ละตัวจะมีหางไม่เกิน 100,000 หาง
บรรทัดที่ N+2 จำนวนเต็มหนึ่งตัว แทนค่า A ที่นักวิทยาศาสตร์บอกคุณ
ข้อมูลส่งออก
มีหนึ่งบรรทัด มีจำนวนเต็มหนึ่งตัว คือ จำนวนวิธีที่สามารถจับคู่ไก่ให้จำนวนหางรวมเท่ากับ A การให้คะแนน
ชุดข้อมูลทดสอบมูลค่าไม่เกิน 40 คะแนน มีค่า N≤100 และในทุกชุดข้อมูลทดสอบมีค่า N≤1,000,000
โจทย์โดย: ทักษพร กิตติอัครเสถียร
ที่มา: TOI.C:05-2009
นักวิทยาศาสตร์บอกว่า ถ้าคุณอยากได้ลูกไก่ที่สุขภาพดี แข็งแรง ไก่สองตัวที่ร่วมกันฟักไข่จะต้องมีจำนวนหางรวมกันเท่ากับ A พอดี ถามว่า คุณจะจับคู่ไก่สองตัวให้จำนวนหางเท่ากับ A ได้กี่วิธี
งานของคุณ
รับค่าจำนวนหางของไก่แต่ละตัวในฟาร์ม และหาว่า จะจับคู่ไก่สองตัวให้จำนวนหางรวม A หางได้กี่วิธี
ข้อมูลนำเข้า
บรรทัดแรกมีจำนวนเต็มหนึ่งจำนวน N แทนจำนวนไก่ที่คุณมี (1≤N≤1,000,000) อีก N บรรทัดถัดมา มีจำนวนเต็มบรรทัดละหนึ่งตัว บอกจำนวนหางของไก่แต่ละตัว โดยไก่แต่ละตัวจะมีหางไม่เกิน 100,000 หาง
บรรทัดที่ N+2 จำนวนเต็มหนึ่งตัว แทนค่า A ที่นักวิทยาศาสตร์บอกคุณ
ข้อมูลส่งออก
มีหนึ่งบรรทัด มีจำนวนเต็มหนึ่งตัว คือ จำนวนวิธีที่สามารถจับคู่ไก่ให้จำนวนหางรวมเท่ากับ A การให้คะแนน
ชุดข้อมูลทดสอบมูลค่าไม่เกิน 40 คะแนน มีค่า N≤100 และในทุกชุดข้อมูลทดสอบมีค่า N≤1,000,000
โจทย์โดย: ทักษพร กิตติอัครเสถียร
ที่มา: TOI.C:05-2009
ตัวอย่างข้อมูลนำเข้า | ตัวอย่างข้อมูลส่งออก |
5 1 3 4 3 0 4 | 3 |
ความช่วยเหลือ: ไม่มีคำใบ้สำหรับปัญหานี้
ที่มาของโจทย์ www.programming.in.th
วิเคราะโจทย์
- รับข้อมูล 3 ตัวด้วยกันคือ จำนวนของไก่ หางของไก่เเต่ล่ะตัว เเละจำนวนหางที่รวมกันเเล้วได้ผลผลิตดีที่สุด
เเนวคิดในการเเก้โจทย์
- รับข้อมูลจำนวนของไก่เข้ามาเเล้วส่งต่อให้กับ Function ที่ 1
- ให้ Function ที่ 1 ทำการวน Loop เผื่อรับจำนวนหางของไก่เเล้วเก็บไว้ใน List เเล้ว return
- สร้าง Function ที่ 2 รับค่า List เเละ ค่า A เผื่อทำการวน Loop หาผลรวมของหางทั้งหมดที่เป็นไปได้ตามโจทย์
Code Python
def Getdatachicken(Input) : Listchicken = [] Sumnumber = 1 while Sumnumber <= Input : Listchicken.append(input("Chicken "+str(Sumnumber)+" Is : ")) Sumnumber = Sumnumber + 1 return Listchicken def Cocktail(InputA,InputB) : SumCocktail = 0 for i in range(len(InputA)) : for a in range(i+1,len(InputA)) : if (InputA[i]+InputA[a]) == InputB and i != a : SumCocktail = SumCocktail + 1 return SumCocktail Chickennumber = input("Number of Chicken : ") Listchicken = Getdatachicken(Chickennumber) InputA = input("Input A Is : ") print("\nChicken Cocktail Is : "+str(Cocktail(Listchicken,InputA))+"\n")
ผลลัพธ์ที่ได้
Number of Chicken : 5 Chicken 1 Is : 1 Chicken 2 Is : 3 Chicken 3 Is : 4 Chicken 4 Is : 3 Chicken 5 Is : 0 Input A Is : 4 Chicken Cocktail Is : 3
ไม่มีความคิดเห็น:
แสดงความคิดเห็น