มันคือเดือนธันวาคม 2014 และ 2015 เกือบจะเริ่มแล้ว อย่างไรก็ตามดูเหมือนว่าทุกคนจะไม่ได้ตระหนักถึงสิ่งนี้
แต่ผู้คนใน PPCG ก็มาช่วยด้วย!
อินพุต
โปรแกรมของคุณได้รับกริดเช่นเดียวกับกำแพงซึ่งวันที่ในเดือนธันวาคมนั้นดูแตกต่างจากเดือนพฤศจิกายนและมกราคม แต่ละสัปดาห์เริ่มต้นด้วยวันอาทิตย์และสิ้นสุดด้วยวันเสาร์
#
วันภายในเดือนที่มีการแสดงโดย วันที่อยู่นอกเดือนนั้นจะถูกแทนด้วย(ช่องว่างรหัส ASCII 32) แต่ละสัปดาห์อยู่บนบรรทัดแยก บรรทัดถูกคั่นด้วยอักขระบรรทัดใหม่ (
\n
) โปรแกรมของคุณอาจต้องการ ommission หรือการขึ้นบรรทัดใหม่เมื่อสิ้นสุดการป้อนข้อมูล
ตัวอย่างเช่นนี่คืออินพุตสำหรับเดือนธันวาคม 2009:
#####
#######
#######
#######
#####
ปฏิทินอยู่ในเดือนธันวาคมเสมอ
งาน
เมื่อป้อนข้อมูลคุณจะต้องค้นหาปีที่เกี่ยวข้องกับปฏิทิน เนื่องจากมีหลายปีที่การจับคู่ปฏิทินคุณต้องส่งคืนปี (ก่อนปี 2015) ที่ใกล้เคียงกับปี 2015 มากที่สุด (ไม่รวมปี 2015 เอง)
โปรแกรมของคุณจะต้องสร้างผลลัพธ์ที่ถูกต้องสำหรับปีใด ๆ <2015 ไม่รวมรายการที่มีรูปแบบปฏิทินสำหรับเดือนธันวาคมซึ่งเท่ากับปีถัดไป (ก่อน 2015) ใกล้กับปี 2558
ถ้าปีนี้เป็น <2014 คุณยังต้องคำนวณความแตกต่างของปี 2014 ที่จะยกตัวอย่างเช่นสำหรับปี 2012 2
แตกต่างกันคือ
เอาท์พุต
ผลลัพธ์ของโปรแกรมของคุณจะต้อง:
- ข้อความ:
Your calendar is for <year>.
(หมายเหตุ: เนื่องจากสิ่งนี้ถูกสะกดเป็น "ปฏิทิน" แต่เดิมฉันจะยอมรับการสะกดคำนั้นด้วย) - ตามด้วยบรรทัดใหม่ (
\n
หรือ\r\n
) - ตามด้วยข้อความ:
It's almost 2015.
- หากปีคือ <2014 จะต้องมีข้อความตามด้วย:
You're <difference> years behind.
ต้องอยู่ในบรรทัดที่แยกต่างหาก - ตามด้วยบรรทัดใหม่ (
\n
หรือ\r\n
) - ตามด้วยข้อความ:
Go buy a new calendar!
- ตามด้วยตัวเลือกขึ้นบรรทัดใหม่ (
\n
หรือ\r\n
)
กฎระเบียบ
- คุณสามารถเลือกได้ว่าคุณต้องการรับปฏิทินเป็นอาร์กิวเมนต์บรรทัดคำสั่ง (เช่น
yourprogram.exe <calendar>
) หรือแจ้งให้ผู้ใช้ป้อน - คุณอาจจะสมมติว่าโปรแกรมของคุณจะไม่ได้รับอินพุตที่ไม่ถูกต้อง การป้อนข้อมูลที่ไม่ถูกต้องรวมถึงรูปแบบปฏิทินที่ไม่มีปี
- รหัสที่สั้นที่สุด (เป็นไบต์ในภาษาใดก็ได้) จะชนะ
อาร์กิวเมนต์บรรทัดรับคำสั่งที่ไม่ได้มาตรฐานใด ๆ (อาร์กิวเมนต์ที่ไม่จำเป็นต้องใช้ในการเรียกใช้สคริปต์) จะนับรวมไปยังจำนวนอักขระทั้งหมด
โปรแกรมของคุณต้องไม่ทำอะไร:
- ขึ้นอยู่กับทรัพยากรภายนอกใด ๆ
- ขึ้นอยู่กับการมีชื่อไฟล์เฉพาะ
- เอาต์พุตสิ่งอื่นนอกเหนือจากเอาต์พุตที่ต้องการ
- ใช้เวลาในการรันนานเป็นพิเศษ หากโปรแกรมของคุณทำงานนานกว่าหนึ่งนาทีบนคอมพิวเตอร์ของผู้ใช้ตามบ้านโดยเฉลี่ยแสดงว่าไม่ถูกต้อง
- โปรแกรมของคุณจะต้องไม่ถูกเขียนในภาษาการเขียนโปรแกรมซึ่งไม่มีผู้แปล / ล่ามที่เปิดเผยต่อสาธารณะก่อนที่จะมีการโพสต์ความท้าทายนี้
ตัวอย่าง
การป้อนข้อมูล:
#####
#######
#######
#######
#####
เอาท์พุท:
Your calendar is for 2009.
It's almost 2015.
You're 5 years behind.
Go buy a new calendar!
การป้อนข้อมูล:
######
#######
#######
#######
####
เอาท์พุท:
Your calendar is for 2014.
It's almost 2015.
Go buy a new calendar!
การป้อนข้อมูล:
#
#######
#######
#######
#######
##
เอาท์พุท:
Your calendar is for 2012.
It's almost 2015.
You're 2 years behind.
Go buy a new calendar!