วันพุธที่ 2 กันยายน พ.ศ. 2558

โจทย์(ครั้งที่ 2)

1035 : Prime Palindrome
Problem type : Batch
Time limit : 1.0 second(s)
Memory limit : 64 megabyte(s)
จำนวนเต็มใดๆ จะถูกเรียกว่า Palindrome ก็ต่อเมื่อ ค่าที่ได้เมื่ออ่านจากหน้าไปหลังและหลังไปหน้า มีค่าเท่ากัน ยกตัวอย่างเช่น 79197 และ 324423 เป็น Palindrome ทั้งคู่ หน้าที่ของคุณคือ คุณจะได้รับจำนวนเต็ม N (1 <= N <= 1 000 000) จากนั้น คุณต้องหาจำนวนที่น้อยที่สุด M โดยที่ M >= N และ M ต้องมีสมบัติเป็นทั้งจำนวนเฉพาะ และ Palindrome

ข้อมูลนำเข้า
บรรทัดแรกเพียงบรรทัดเดียว ระบุจำนวนเต็ม N

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

บรรทัดเดียว ระบุจำนวนเฉพาะที่มีค่าน้อยที่สุด แต่ต้องมีค่ามากกว่าหรือเท่ากับ N

ที่มา: Indian National Olympiad in Informatics Online Programming Contest 4-5 September 2004
ตัวอย่างข้อมูลนำเข้าตัวอย่างข้อมูลส่งออก
31101

ความช่วยเหลือ: ไม่มีคำใบ้สำหรับปัญหานี้


Troubleshoot
   เราจะเอาค่าที่มีค่ามากว่า input มาเช็ค 2 อย่าง นั่นคือ เป็นจำนวนเฉพาะ กับ Palindrome หรือไม่ ถ้าเป็นก็ให้ print ค่านั้นออกมาเลย ถ้าไม่ใช่ให้เพิ่มค่าทีละ +1 (ในโค้ดจะแบ่งเป็น function อย่างชัดเจน)

Code 



Test code



1093 : หยิบหนังสือ
Problem type : Batch
Time limit : 1.0 second(s)
Memory limit : 16 megabyte(s)
เนื่องจากคุณมาเข้าแถวสาย คุณจึงโดนทำโทษให้จัดหนังสือในห้องสมุด หนังสือแต่ละเล่มที่คุณจัดล้วนแต่เป็นหนังสือเรียนหนา ๆ น่าเบื่อ  ทันทีที่ถึงเวลาพักเที่ยงและอาจารย์ห้องสมุดของคุณไม่อยู่ คุณจึงคิดเกมหนึ่งขึ้นมาเล่นกับตัวเอง

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

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

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

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

    บรรทัดที่ 1 มีจำนวนเต็มบวก N (1≤N≤2,000) แทนจำนวนหนังสือในกอง
    บรรทัดที่ 2 ถึงบรรทัดที่ N+1 จะบอกหมายเลขหนังสือในกอง จากบนลงล่าง บรรทัดละหนึ่งจำนวน ซึ่งจำนวนเต็มไม่ติดลบดังกล่าวมีค่าไม่เกิน 1,000,000

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

    มีจำนวนเต็มจำนวนเดียวแต้มรวมที่มากที่สุดที่เป็นไปได้จากการหยิบหนังสือตามเงื่อนไข

โจทย์โดย
วรภัทร จรางกูล
ที่มา
ดัดแปลงจากข้อสอบพี่ช่วยน้อง โรงเรียนมหิดลวิทยานุสรณ์ พ.ศ. 2552
ตัวอย่างข้อมูลนำเข้าตัวอย่างข้อมูลส่งออก
7
1
2
3
4
5
6
7
5
9
5
5
5
5
5
5
5
5
100
10

Troubleshoot
   ในหนังสือกองหนึ่ง (ข้อมูล 1 ชุด) เราเลือกออกมาได้ ครั้งละ 3 เล่ม กี่ครั้งก็ได้ เหมือนกับเรื่องความน่าจะเป็น เราต้องหาว่าวิธีในการเลือกมีกี่วิธี และวิธีนั้นให้ผลลัพท์เท่าไหร่ และจึงเอาวิธีที่ให้ผลลัพท์มากที่สุดมาตอบ

Code



Test Code

ไม่มีความคิดเห็น:

แสดงความคิดเห็น