ACM-ICPC 2016

กฏ กติกา การแข่งขัน

กฎและการตัดสินที่ใช้ในการแข่งขัน อ้างอิงจากกฎการแข่งขันหลักของ ACM-ICPC ในระดับ World Final รวมไปถึงระดับ Regional ของภูมิภาคต่างๆ โดยคณะกรรมการฯ ได้ปรับปรุงบางส่วนให้เข้ากับสภาพการแข่งขันในพื้นที่ปัจจุบัน ผู้เข้าร่วมแข่งขันทุกทีมและผู้ควบคุมทีม รวมถึงผู้ช่วยผู้ควบคุมทีม ควรอ่านทำความเข้าใจและปฏิบัติตามอย่างเคร่งครัด เพื่อความเสมอภาคและความยุติธรรมในการแข่งขัน

ข้อกำหนดของทีม

ทีมต้องประกอบด้วยโค้ช 1 คน และผู้เข้าแข่งขัน 3 คน ซึ่งมาจากสถาบันเดียวกัน หากไม่เป็นไปตามข้อกำหนดนี้ จะไม่ได้รับการจัดอันดับ รางวัล และสิทธิ์ในการผ่านเข้าสู่รอบถัดไป แต่สามารถเข้าร่วมการแข่งขันได้โดยได้รับอนุญาตจากผู้จัดการแข่งขัน

ลักษณะการแข่งขัน

แข่งขันเขียนโปรแกรมแก้โจทย์ปัญหา (โจทย์อธิบายเป็นภาษาอังกฤษ) โดยใช้ภาษา C, C++ หรือ Java เป็นภาษาโปรแกรม เวลาแข่งขัน 4 ชั่วโมง ติดต่อกัน ทีมเข้าแข่งขันเลือกทำโจทย์ข้อใดก่อนก็ได้ แต่ละข้อใช้ภาษาโปรแกรมอะไรก็ได้ (C, C++, Java) ทีมที่เข้าแข่งขัน มีสมาชิก 3 คน เป็นนิสิต/นักศึกษาจากสถาบันเดียวกัน

ข้อกำหนดในห้องแข่งขัน

  • อนุญาตให้นำหนังสือ อาทิ Text Book, Dictionary, Magazine เข้าได้ทีมละไม่เกิน 3 เล่ม (สามารถเป็นแบบถ่ายสำเนาได้) และเอกสารอื่นๆ ในรูปแบบกระดาษไม่เกิน 100 หน้า รวมถึงอุปกรณ์เครื่องเขียนต่างๆ
  • ไม่อนุญาตให้ใช้อุปกรณ์สื่อสารหรืออุปกรณ์อิเล็กทรอนิกส์ทุกชนิด อาทิ โทรศัพท์, เครื่องคิดเลข, เครื่องเล่น MP3, Flash Drive, CD, iPod เป็นต้น และสัมภาระหรือสิ่งของใดๆ เข้าไปในห้องแข่ง
  • ผู้เข้าแข่งขันต้องใช้เครื่องคอมพิวเตอร์และอุปกรณ์ที่ทางผู้จัดการแข่งขันจัดเตรียมไว้ให้เท่านั้น ไม่อนุญาตให้นำอุปกรณ์มาเอง
  • ไม่อนุญาตให้ผู้เข้าแข่งขันติดต่อสื่อสารกับบุคคลอื่นใด นอกเหนือจากสมาชิกภายในทีมตนเอง และคณะกรรมการจัดการแข่งขันที่ช่วยงานในระหว่างการแข่งขัน
  • ในระหว่างการแข่งขัน สมาชิกในทีมอาจขออนุญาตกรรมการประจำห้องไปห้องน้ำหรือผ่อนคลาย ภายนอกห้องแข่งขัน ในขอบเขตที่กำหนดไว้ และมีคณะกรรมการคอยเฝ้าติดตาม แต่ละครั้งไม่เกิน 15 นาที
  • ไม่ควรส่งเสียงดังเกินควรหรือทำการอื่นใด ที่เป็นการรบกวนทีมอื่นๆ
  • ไม่อนุญาต ให้ใช้ Internet หรือ พยายามติดต่อใช้ Internet ด้วยวิธีการใดๆ

ระหว่างการแข่งขัน

  • การส่งโปรแกรมเพื่อรับการตรวจแต่ละครั้ง จะเรียกว่า Run โดยเมื่อส่งไปแล้วระบบจะตรวจและแจ้งว่าโปรแกรมดังกล่าวสามารถทำงานได้ถูกต้องหรือไม่ (Yes/No) ผู้เข้าแข่งขันทุกทีมจำเป็นต้องเข้าสู่ระบบ (Login) ผ่านโปรแกรม PC2 ตลอดระยะเวลาการแข่งขันด้วยชื่อผู้ใช้งานที่แจกให้แต่ละทีมเท่านั้น หากพบความพยายามในการเข้าสู่ระบบด้วยชื่อผู้ใช้งานอื่นจะถูกพิจารณาตัดสิทธิ์จากการแข่งขัน
  • หากผู้เข้าแข่งขันพบความผิดปกติในโจทย์แข่งขัน ให้สอบถามผ่านทางระบบ Clarification Request ของ PC2
  • ในระหว่างการแข่งขัน ผู้เข้าแข่งขันสามารถเข้าชม Live Scoreboard แจ้งอันดับของทีมได้ผ่านขั้นตอนที่จะระบุในห้องแข่งขัน และจะมีการแสดง Live Scoreboard ไปยังห้องรับรองผู้ควบคุมทีมด้วยเช่นเดียวกัน ซึ่งจะทำการปิดระบบ Live Scoreboard ก่อนหมดเวลการแข่งขัน 45 นาที
  • ผู้เข้าแข่งขันจะได้รับผลการตรวจ (Judge’s Response - Yes/No) ตามปกติตลอดระยะเวลาการแข่งขัน

การตัดสิน

  • การเรียงอันดับของทีม นับจากจำนวนโจทย์ที่ทำได้ (Problem Solved) เป็นหลัก
    • ถ้ามีทีมที่ทำได้จำนวนโจทย์เท่ากัน ให้เรียงตามเวลา (Total Time) จากน้อยไปมาก
    • Total Time คือ ผลรวมของเวลา (จำนวนนาที นับจากจุดเริ่มต้นการแข่งขัน) ที่ใช้ทำโจทย์ในแต่ละข้อ โดยจะพิจารณาเฉพาะข้อที่ทำได้ถูกต้อง โดยเลือกเอาเวลาที่ใช้แก้ปัญหาโจทย์ได้เป็นครั้งแรกของข้อนั้นๆ (First Accepted Run) รวมกับเวลาที่เกิดจากการส่งโปรแกรมคำตอบ (Run) ที่ทำงานไม่ถูกต้องของข้อนั้นๆ จะถูกเพิ่มเวลา (Penalty) เป็น 20 นาทีต่อครั้ง
    • เวลาของโจทย์ของข้อที่ยังไม่ถูกต้องจะไม่นำไปคิดในเวลารวม
    • หากมีตั้งแต่สองทีมขึ้นไปที่มีจำนวนข้อ Problem Solved และ Total Time เท่ากันพอดี ให้พิจารณาจากเวลาของข้อสุดท้ายที่ทีมนั้นๆ ทำได้ โดยไม่คำนึงถึงเวลาที่เกิดจาก Penalty ของข้อนั้น ใครทำได้ก่อนเป็นผู้ชนะ หากเท่ากันอีกจึงพิจารณาข้อก่อนหน้าตามลำดับ
  • หากพบเจตนาในการทุจริตของทีมใดๆ คณะกรรมการมีสิทธิ์ในการตัดสิทธิ์การแข่งขัน
  • หากมีข้อร้องเรียนใดๆ เกี่ยวกับการแข่งขัน ต้องดำเนินการให้แล้วเสร็จภายใน 30 นาทีหลังจากสิ้นสุดการแข่งขัน
  • ในกรณีที่เกิดเหตุการณ์ไม่ปกติในการแข่งขัน คณะกรรมการจัดการแข่งขันมีสิทธิ์ในการตัดสินเป็นกรณีไป และการตัดสินของคณะกรรมการจัดการแข่งขันถือเป็นสิ้นสุด

ACM-ICPC Software Environment

OS: Ubuntu
Desktop: GNOME
Editors:
-Vi/vim
-Gvim
-Emacs
-Gedit
-Geany
Languages:
-Java OpenJDK
-C/C++
IDEs:
-Eclipse
-C/C++ CDT under Eclipse
-Codeblocks