ผลต่างระหว่างรุ่นของ "โจทย์เขียนโปรแกรม: sumpair"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
(สร้างหน้าใหม่: == แหล่งที่มา == 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 โดยที่

  1. จำนวนเต็มตัวหนึ่งสามารถจับคู่กับจำนวนเต็มตัวอื่นได้เพียงตัวเดียวเท่านั้น
  2. ผลบวกของจำนวนเต็มที่จับคู่กันต้องเท่ากับจำนวนเต็มตัวใดตัวหนึ่งใน 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) สักปีหนึ่ง