ผลต่างระหว่างรุ่นของ "โจทย์เขียนโปรแกรม: sumpair"
Cardcaptor (คุย | มีส่วนร่วม) (สร้างหน้าใหม่: == แหล่งที่มา == Bundeswettbewerb Informatik (Germany Olympiad in Informatics) สักปีหนึ่ง) |
|||
(ไม่แสดง 8 รุ่นระหว่างกลางโดยผู้ใช้ 2 คน) | |||
แถว 1: | แถว 1: | ||
+ | __NOTOC__ | ||
+ | คุณได้รับเลขจำนวนเต็มมา n จำนวน เรียกจำนวนเหล่านี้ว่าอยู่ในมัลติเซต (เซตที่สามารถมีสมาชิกตัวเดียวกันมากกว่าหนึ่งตัวได้) A และได้รับจำนวนเต็มคี่มาอีก m จำนวนที่แตกต่างกัน เรียกเซตของจำนวนคี่นี้ว่า S | ||
+ | |||
+ | คุณต้องการจับคู่จำนวนเต็มใน A โดยที่ | ||
+ | # จำนวนเต็มตัวหนึ่งสามารถจับคู่กับจำนวนเต็มตัวอื่นได้เพียงตัวเดียวเท่านั้น | ||
+ | # ผลบวกของจำนวนเต็มที่จับคู่กันต้องเท่ากับจำนวนเต็มตัวใดตัวหนึ่งใน S | ||
+ | |||
+ | จงเขียนโปรแกรมเพื่อหาว่าคุณสามารถจับคู่ดังกล่าวข้างต้นได้มากที่สุดกี่คู่ | ||
+ | |||
+ | == ข้อมูลเข้า == | ||
+ | บรรทัดแรกมีจำนวนเต็ม n (1 <= n <= 100,000) แสดงจำนวนของจำนวนเต็มที่อยู่ในมัลติเซต A | ||
+ | |||
+ | อีก n บรรทัดบอกจำนวนเต็มที่อยู่ใน A โดยแต่ละบรรทัดมีจำนวนเต็ม x (-1,000 <= x <= 1,000) บรรทัดละตัว | ||
+ | |||
+ | บรรทัดต่อไปมีจำนวนเต็ม m (1 <= m <= 1,000) แสดงจำนวนของจำนวนเต็มคี่ที่อยู่ในเซต S | ||
+ | |||
+ | อีก m บรรทัดต่อไปบอกจำนวนเต็มคี่ที่อยู่ใน S โดยแต่ละบรรทัดมีจำนวนเต็มคี่ y (-2,000 <= y <= 2,000) บรรทัดละตัว | ||
+ | |||
+ | == ข้อมูลออก == | ||
+ | พิมพ์จำนวนคู่ที่มากที่สุดที่สามารถจับได้ตามเงื่อนไขข้างบนลงในบรรทัดแรก | ||
+ | |||
+ | == ตัวอย่าง == | ||
+ | {| border="0" cellpadding="10" align="left" width="100%" | ||
+ | |- | ||
+ | | | ||
+ | '''ข้อมูลเข้า 1'''<br> | ||
+ | <pre> | ||
+ | 10 | ||
+ | 1 | ||
+ | |||
+ | 3 | ||
+ | 4 | ||
+ | 5 | ||
+ | 6 | ||
+ | 7 | ||
+ | 8 | ||
+ | 9 | ||
+ | 10 | ||
+ | 3 | ||
+ | 5 | ||
+ | 15 | ||
+ | 3 | ||
+ | </pre> | ||
+ | '''ข้อมูลออก 1'''<br> | ||
+ | <pre> | ||
+ | 5 | ||
+ | </pre> | ||
+ | |} | ||
+ | |||
+ | == ข้อกำหนด == | ||
+ | โปรแกรมของคุณต้องทำงานเสร็จภายในเวลา 1 วินาที และใช้หน่วยความจำไม่เกิน 32 MB | ||
+ | |||
== แหล่งที่มา == | == แหล่งที่มา == | ||
Bundeswettbewerb Informatik (Germany Olympiad in Informatics) สักปีหนึ่ง | Bundeswettbewerb Informatik (Germany Olympiad in Informatics) สักปีหนึ่ง |
รุ่นแก้ไขปัจจุบันเมื่อ 03:50, 4 มีนาคม 2554
คุณได้รับเลขจำนวนเต็มมา n จำนวน เรียกจำนวนเหล่านี้ว่าอยู่ในมัลติเซต (เซตที่สามารถมีสมาชิกตัวเดียวกันมากกว่าหนึ่งตัวได้) A และได้รับจำนวนเต็มคี่มาอีก m จำนวนที่แตกต่างกัน เรียกเซตของจำนวนคี่นี้ว่า S
คุณต้องการจับคู่จำนวนเต็มใน A โดยที่
- จำนวนเต็มตัวหนึ่งสามารถจับคู่กับจำนวนเต็มตัวอื่นได้เพียงตัวเดียวเท่านั้น
- ผลบวกของจำนวนเต็มที่จับคู่กันต้องเท่ากับจำนวนเต็มตัวใดตัวหนึ่งใน S
จงเขียนโปรแกรมเพื่อหาว่าคุณสามารถจับคู่ดังกล่าวข้างต้นได้มากที่สุดกี่คู่
ข้อมูลเข้า
บรรทัดแรกมีจำนวนเต็ม n (1 <= n <= 100,000) แสดงจำนวนของจำนวนเต็มที่อยู่ในมัลติเซต A
อีก n บรรทัดบอกจำนวนเต็มที่อยู่ใน A โดยแต่ละบรรทัดมีจำนวนเต็ม x (-1,000 <= x <= 1,000) บรรทัดละตัว
บรรทัดต่อไปมีจำนวนเต็ม m (1 <= m <= 1,000) แสดงจำนวนของจำนวนเต็มคี่ที่อยู่ในเซต S
อีก m บรรทัดต่อไปบอกจำนวนเต็มคี่ที่อยู่ใน S โดยแต่ละบรรทัดมีจำนวนเต็มคี่ y (-2,000 <= y <= 2,000) บรรทัดละตัว
ข้อมูลออก
พิมพ์จำนวนคู่ที่มากที่สุดที่สามารถจับได้ตามเงื่อนไขข้างบนลงในบรรทัดแรก
ตัวอย่าง
ข้อมูลเข้า 1 10 1 3 4 5 6 7 8 9 10 3 5 15 3 ข้อมูลออก 1 5 |
ข้อกำหนด
โปรแกรมของคุณต้องทำงานเสร็จภายในเวลา 1 วินาที และใช้หน่วยความจำไม่เกิน 32 MB
แหล่งที่มา
Bundeswettbewerb Informatik (Germany Olympiad in Informatics) สักปีหนึ่ง