|
การแข่งขันการเขียนโปรแกรม ระดับภาคใต้ ครั้งที่ 1 ปี 2553 ACM-ICPC Thailand Southern Area Programming Contest 2010
ภาควิชาวิศวกรรมคอมพิวเตอร์ มหาวิทยาลัยสงขลานครินทร์ วิทยาเขตภูเก็ต Prince of Songkla University, Phuket Campus 12-13 กรกฎาคม 2553 12-13 July 2010
กฎกติกา และ การตัดสิน กฎกติกาการแข่งขันอ้างอิงจากกฎการแข่งขันของ ACM-ICPC โดยคณะกรรมการจัดงาน ได้ปรับปรุงบางส่วนให้เข้ากับสภาพการแข่งขันในพื้นที่ปัจจุบัน ผู้เข้าร่วมแข่งขันทุกทีมและผู้ควบคุมทีม (โค้ชหรือผู้ช่วย) ต้องปฏิบัติตามอย่างเคร่งครัด เพื่อความเสมอภาคและความยุติธรรมในการแข่งขัน
1. ทั่วไป 1.1 ลักษณะการแข่งขัน • แข่งขันเขียนโปรแกรมแก้โจทย์ปัญหา มีโจทย์อย่างน้อย 5 ข้อ (โจทย์อธิบายเป็นภาษาอังกฤษหรือไทย แต่มีโจทย์เป็นภาษาอังกฤษอย่างน้อย 2 ข้อ) โดยใช้ภาษา C, C++ หรือ Java เป็นภาษาโปรแกรม เวลาแข่งขัน 3 ชั่วโมง 30 นาที ติดต่อกัน • ทีมเข้าแข่งขันเลือกทำโจทย์ข้อใดก่อนก็ได้ แต่ละข้อใช้ภาษาโปรแกรมอะไรก็ได้ (C, C++, Java) • ทีมที่เข้าแข่งขัน มีสมาชิก 3 คน เป็นนักศึกษาจากสถาบันเดียวกัน 1.2 สิ่งที่อนุญาตและไม่อนุญาตในห้องแข่งขัน • อนุญาตให้นำหนังสือ (text book, dictionary, magazine, …) เข้าได้ทีมละไม่เกิน 3 เล่ม และเอกสารอื่นๆ ในรูปแบบกระดาษไม่เกิน 100 แผ่น • ไม่อนุญาต ให้ใช้อุปกรณ์สื่อสาร และ อุปกรณ์อิเล็กทรอนิกส์ทุกชนิด (โทรศัพท์, เครื่องคิดเลข, เครื่องเล่น MP3, flash drive, CD, iPod, …) • ระหว่างการแข่งขันไม่อนุญาต ให้สื่อสารกับทีมอื่นๆ หรือโค้ช (ผู้ควบคุมทีม) ไม่ว่าวิธีการใดๆ • ในระหว่างการแข่งขัน สมาชิกในทีมอาจขออนุญาตกรรมการประจำห้องไปห้องน้ำหรือผ่อนคลาย ภายนอกห้องแข่งขัน ในขอบเขตที่กำหนดไว้ และมี staff คอยเฝ้าติดตาม แต่ละครั้งไม่เกิน 15 นาที • มีน้ำและอาหารว่าง จัดให้แก่ทุกทีม ในระหว่างการแข่งขัน • ไม่ควรส่งเสียงดังเกินควรหรือทำการอื่นใด ที่เป็นการรบกวนทีมอื่นๆ • ไม่อนุญาต ให้ใช้ internet หรือ พยายามติดต่อใช้ internet ด้วยวิธีการใดๆ
2. สภาพแวดล้อมในการแข่งขัน 2.1 ห้องแข่งขัน • แต่ละทีมถูกจัดให้อยู่ในห้องแข่งขัน มีแสงสว่างเพียงพอ ในห้องปรับอากาศ • แต่ละทีมมีโต๊ะทำงานหนึ่งตัว เก้าอี้ 3 ตัว และ PC 1 เครื่อง 2.2 Programming Environment OS: Linux ( Ubuntu ) Languages/Compiler/Library: C/C++ : GCC version 4.2+ / Standard GNU C library , GNU C++ Library Java: Java 1.6 / Java Standard Edition 6 IDE: Java - Eclipse 3.3.1 C/C++ - CDT 4.0.1 under Eclipse 3.3.1 Editor: vi/vim , gvim, gedit, kate, xemacs Programming Contest Control: PC2 v 9.1 ในวันก่อนวันแข่งขันจริง มี Practice Session เพื่อให้ทุกทีมได้ทดลองใช้เครื่อง และเข้าสู่ระบบควบคุมการแข่งขัน PC2 ที่ใช้ส่งโปรแกรมคำตอบ และดูผลตัดสิน และเวลาของการแข่งขัน
3. การตัดสิน • การเรียงอันดับของทีม นับจากจำนวนโจทย์ที่ทำได้ (problem solved) เป็นหลัก ถ้ามีทีมที่ทำได้จำนวนโจทย์เท่ากัน ให้เรียงตามเวลา (time หรือ points) จากน้อยไปมาก • Time/Points หรือคะแนน คือ ผลรวมของเวลา (จำนวนนาที นับจากจุดเริ่มต้นการแข่งขัน) ที่ใช้ทำโจทย์ในแต่ละข้อ นับเฉพาะข้อที่ทำได้ถูกต้อง โปรแกรมคำตอบ(หรือ Run) ที่ส่งแล้วไม่ถูกต้อง จะถูกเพิ่มเวลาเป็น 20 นาทีต่อครั้ง เวลาของโจทย์ของข้อที่ยังทำไม่ถูกจะไม่นำไปคิดในเวลารวม • เมื่อสิ้นสุดเวลาการแข่งขัน ระบบ PC2 จะจัดอันดับของทีมต่างๆ โดยอัตโนมัติ จะยึดถือผลการตัดสินนี้เป็นหลัก และเมื่อกรรมการไม่ตรวจพบความผิดปกติใดๆ จึงประกาศให้ผลการตัดสินนั้น เป็นผลการตัดสินอย่างเป็นทางการ • การได้จำนวนข้อ Problem solved และ Time ที่เท่ากันพอดีของสองทีม (หรือหลายทีม) ให้จัดอันดับโดยพิจารณาเพิ่มเติมดังนี้ o ตอนแรกดูความแม่นยำก่อน คือทีมที่ส่งจำนวน Run น้อยกว่าเป็นผู้ชนะ (Attempt น้อยกว่าแต่ได้ข้อถูกเท่ากัน) o หาก Attempt เท่ากันพอดี ให้พิจารณาเวลาของข้อแรกที่ทีมนั้นๆทำได้ ใครทำได้ก่อนเป็นผู้ชนะ หากเท่ากันอีกจึงพิจารณาข้อถัดไปตามลำดับ
|