เกณฑ์การให้คะแนน

สำหรับการตรวจให้คะแนนในการแข่งขันคอมพิวเตอร์โอลิมปิกระดับชาติครั้งที่ 18 นี้ได้มีการเปลี่ยนแปลงเงื่อนไขสำหรับการตรวจให้คะแนนให้สอดคล้องกับการแข่งขันคอมพิวเตอร์โอลิมปิกระดับนานาชาติ (IOI) โดยได้กำหนดการให้คะแนน (Score types) ที่ใช้ในการแข่งขันออกเป็น 2 รูปแบบ ดังนี้
1. ผลรวม (Sum) รูปแบบการให้คะแนนแบบนี้ จะแปลผลลัพธ์ (Outcome) ของแต่ละชุดทดสอบออกมาเป็นค่า 0 และ 1 โดยที่ 0 แทนไม่ถูกต้อง (Not correct) และ 1 แทนถูกต้อง (Correct) จากนั้นจะนำผลลัพธ์ของแต่ละชุดทดสอบมาคูณด้วยค่าน้ำหนัก แล้วหาผลรวม ตัวอย่างเช่น ถ้าค่าน้ำหนักเป็น 10 แล้วผลลัพธ์ถูกต้อง 2 ชุดทดสอบ จะได้ 20 คะแนน ดังรูปด้านล่าง
ในปีนี้คะแนนที่ได้ในรูปแบบผลรวมจะถือจากคะแนนที่สูงที่สุดจาก Submission (การส่ง) ทั้งหมด (“Use best among all submissions”) ทั้งนี้กรณีที่ผลลัพธ์ไม่ถูกต้อง (Not correct) อาจจะมีรายละเอียด (Details) ต่างกันคือ
  • Output isn’t correct – ผลลัพธ์จากโปรแกรมไม่ถูกต้อง
  • Execution timed out – ใช้เวลาเกินที่กำหนด
  • Execution killed with signal 11 (could be triggered by violating memory limits) – อ้างอิงหน่วยความจำผิด หรือ ใช้หน่วยความจำเกินที่กำหนด
  • Execution failed because the return code was nonzero – โปรแกรมจบการทำงานด้วย return code ที่ไม่เป็น 0
2. ค่าน้อยสุดในกลุ่ม (GroupMin) รูปแบบการให้คะแนนแบบนี้ จะแปลผลลัพธ์ของแต่ละชุดทดสอบออกมาเป็นค่า 0 และ 1 เช่นเดียวกับแบบผลรวม (Sum) ในข้อแรก แต่ชุดทดสอบทดสอบจะถูกแบ่งออกเป็น Subtask (กลุ่มชุดทดสอบย่อย) แต่ละ Subtask อาจจะมีค่าน้ำหนักที่แตกต่างกัน ผลลัพธ์ต้องถูกต้องทั้ง Subtask ถึงจะได้คะแนนใน Subtask นั้นๆ ตัวอย่างเช่น หากมี 3 Subtask แต่ละ Subtask มี 20 คะแนนเท่ากัน หากผลลัพธ์ถูกต้องทุกกรณีใน Subtask 1 และ Subtask 2 แต่ถูกเพียงบางส่วนใน Subtask 3 ก็จะได้คะแนนเฉพาะ ใน Subtask 1 และ Subtask 2 เท่านั้น
ใน TOI18 คะแนนที่ได้ในแต่ละข้อในรูปแบบ GroupMin นี้จะเป็นผลรวมจากคะแนนสูงสุดที่ได้ในแต่ละ Subtask โดยพิจารณาจากทุก Submission ในโจทย์ข้อนั้น (“Use the sum over each subtask of the best result for that subtask across all submissions”) นอกจากนี้ในแต่ละ Subtask อาจกำหนดคะแนนที่แตกต่างกัน โดยจะมีการระบุเกณฑ์การให้คะแนนอย่างคร่าวๆ ไว้ในข้อสอบ เพื่อให้ผู้เข้าแข่งขันสามารถประเมินขอบเขตคะแนนได้
ตัวอย่างเช่น
ถ้าผู้เข้าแข่งขันคนหนึ่งมี 2 submission (การส่ง) ในโจทย์ที่มี 2 Subtask
Submission ที่ 1 ได้ 30 คะแนนใน Subtask ที่ 1 และ 10 คะแนน ใน Subtask ที่่ 2
Submission ที่ 2 ได้ 0 คะแนนใน Subtask ที่ 1 และ 40 คะแนนใน Subtask ที่ 2
คะแนนที่ผู้เข้าแข่งขันได้ในโจทย์ข้อนี้จะเป็น 70 คะแนน