Mirko ตัดสินใจที่จะเปิดตัวธุรกิจใหม่ คือ ห้องนิรภัยในธนาคาร สาขาของธนาคารสามารถมองเห็นได้ในแนวระนาบและห้องนิรภัยก็สามารถกำหนดจุดในแนวระนาบได้เช่นกัน สาขาของ Mirko ประกอบด้วย ห้องนิรภัยจำนวน L* (A+1+B) ห้องเท่านั้น ดังนั้น ในแต่ละจุดซึ่งเป็นพิสัยของเลขจำนวนเต็มภายในสี่เหลี่ยมผืนผ้าที่มี (1, −A) และ (L, B) เป็นด้านมุมจะมีห้องนิรภัยเพียง 1 ห้องเท่านั้น
พนักงานรักษาความปลอดภัย 2 คนสามารถมองเห็นห้องนิรภัยเหล่านั้นได้ โดยพนักงานคนหนึ่งยืนอยู่ที่ตำแหน่ง (0, -A) และอีกคนหนึ่งยืนอยู่ที่ (0, B) พนักงานรักษาความปลอดภัย 1 คนสามารถมองเห็นห้องนิรภัย 1 ห้องได้ ถ้าไม่มีห้องนิรภัยห้องอื่นบนแนวเดียวกันเชื่อมต่อกัน
ถ้าไม่มีพนักงานรักษาความปลอดภัยคนใดสามารถมองเห็นห้องนิรภัยได้ จะถือว่า ห้องนิรภัยนี้ไม่มีความปลอดภัย แต่ถ้ามีพนักงาน 1 คนสามารถมองเห็นได้ จะถือว่า ห้องนิรภัยนี้มีความปลอดภัย และถ้าพนักงานรักษาความปลอดภัยทั้งสองคนสามารถมองเห็นห้องนิรภัยนี้ได้ จะถือว่าห้องนิรภัยนี้มีความปลอดภัยสูงมาก
งานของคุณ
จงเขียนโปรแกรมเพื่อรับค่า A, B และ L แล้วให้แสดงผลจำนวนของห้องนิรภัยที่ไม่มีความปลอดภัย ห้องนิรภัยที่มีความปลอดภัย และห้องนิรภัยที่มีความปลอดภัยสูงมาก ตามลำดับ
ข้อมูลนำเข้า
ในบรรทัดแรก ประกอบด้วยเลขจำนวนเต็ม A และ B ซึ่งแยกกันด้วยช่องว่าง โดย A และ B มีค่าดังนี้
1 ≤ A ≤ 2000 และ 1 ≤ B ≤ 2000
บรรทัดที่ 2 ประกอบด้วยเลขจำนวนเต็ม L ซึ่งมีค่าดังนี้ 1 ≤ L ≤ 1000000000
ข้อมูลส่งออก
ให้แสดงผลข้อมูลส่งออกเป็น 3 บรรทัด คือจำนวนของห้องนิรภัยที่ไม่มีความปลอดภัย ห้องนิรภัยที่มีความปลอดภัย และห้องนิรภัยที่มีความปลอดภัยสูงมาก ตามลำดับ
การให้คะแนน
ในกรณีทดสอบ จะได้รับคะแนนครึ่งหนึ่งของคะแนนทั้งหมด ถ้า L มีค่ามากสุด คือ 1000
ในกรณีทดสอบ จะได้รับคะแนนเพิ่มเติมอีก 25 เปอร์เซ็นต์ของคะแนนทั้งหมด ถ้า A และ B มีค่ามากที่สุด คือ 100 (แต่ L สามารถมีค่าได้มากถึง 1 พันล้าน)
ที่มา: COCI 2008/2009, Contest #4 – January 17, 2009
ตัวอย่างข้อมูลนำเข้า | ตัวอย่างข้อมูลส่งออก |
1 1 3 | 2 2 5 |
2 3 4 | 0 16 8 |
7 11 1000000 | 6723409 2301730 9974861 |