สมาคม Association for Computing Machinery (ACM) เป็นสมาคมวิชาชีพด้านคอมพิวเตอร์ที่เก่าแก่และมีจำนวนสมาชิกมากที่สุดแห่งหนึ่งของโลก นอกจากวารสารวิชาการ ACM ที่มีชื่อเสียงแล้ว กิจกรรมอย่างหนึ่งของสมาคมคือการแข่งขันเขียนโปรแกรมระดับมหาวิทยาลัย (International Collegiate Programming Contest หรือ ICPC) ซึ่งเป็นการแข่งขันระดับโลกที่มีนักศึกษาทั่วโลกจำนวนหลายหมื่นคนเข้าชิงชัย
รูปแบบของการแข่งขัน ACM-ICPC คือจัดทีม 3 คน ทำโจทย์ที่ต้องใช้ทักษะการออกแบบอัลกอริทึมแล้วเขียนโค้ดจัดการกับข้อมูลตัวอย่างที่ได้รับ ในระยะเวลาที่กำหนด (ข้อสอบค่อนข้างท้าทาย มีจำนวน 10 ข้อในเวลาเพียงไม่กี่ชั่วโมง แถมประสิทธิภาพของอัลกอริทึมมีผลต่อคะแนน) การแข่งขันจัดเป็นรอบๆ ในระดับประเทศ ระดับภาค และการแข่งขันรอบชิงชนะเลิศ ที่คัด 128 ทีมที่ดีที่สุดจากทั่วโลกมาร่วมชิงชัย
โชคดีว่า การแข่งขันรอบชิงชนะเลิศ ACM-ICPC World Finals ประจำปี 2016 วนมาจัดที่เมืองไทย โดยมหาวิทยาลัยสงขลานครินทร์ (PSU) รับเป็นมหาวิทยาลัยเจ้าภาพ จัดแข่งนัดชิงที่ภูเก็ต โดยมีทีมจากมหาวิทยาลัยไทยเข้าร่วม 2 ทีม (จาก มอ. และจากจุฬาฯ) รวมถึงมีนักศึกษาไทยที่เรียนอยู่ในมหาวิทยาลัยต่างประเทศ มาร่วมแข่งขันด้วยเช่นกัน
ผมได้รับเชิญจาก IBM ซึ่งเป็นสปอนเซอร์หลักของงาน ACM-ICPC มายาวนาน ให้มาดูการแข่งขันนัดชิงชนะเลิศด้วย ใครอยากเอาใจช่วยเด็กไทยก็สามารถชม Livestream ได้จากเว็บ ICPC Live เวลาแข่งคือวันนี้ 09:30-15:00 น. ครับ
ทีม FEDEX จากมหาวิทยาลัยสงขลานครินทร์
ทีม CUCP Meow Meow จากจุฬาลงกรณ์มหาวิทยาลัย และทีม Madison - SmileDog ทีมคนไทยล้วนจาก University of Wisconsin
บรรยากาศการแข่งขันวันซ้อมเมื่อวาน ก่อนแข่งจริงวันนี้
วิดีโอสรุปบรรยากาศสนามจริงในวันซ้อม
ภาพจาก Facebook ICPC Thailand News
Comments
คิดถึงสมัยยังแข่งได้เลยครับ #แก่
Dream high, work hard.
ขอให้ประสบความสำเร็จ ได้ลูกโป่งกลับบ้านกันเยอะๆ นะครับ ^^
อยากรู้โจทย์ที่ใช้แข่งเค้าถามว่าอะไรมั่งครับ
เขียน Hello World มั้งครับ :)
แต่ให้เขียนด้วยภาษา Whitespace ใช่มั้ยครับ
https://en.wikipedia.org/wiki/Whitespace_%28programming_language%29
ผมจำได้ข้อเดียวนะครับ นานมากแล้ว จำไม่ได้ว่ารอบระดับประเทศหรือระดับสูงกว่านั้นที่มีต่างชาติด้วย สถานที่จัดเดียวกันนี่เลย
รับ input เป็นรัศมี (หรือเส้นผ่านศูนย์กลาง?) ของวงกลมทั้งสี่วงในสามเหลี่ยมมุมฉากครับ ใส่วงนึงให้เต็มสามเหลี่ยมแนบชิดไปก่อน แล้ววงที่เหลือก็เติมอีกสามมุมให้เต็มแนบชิดเช่นกัน แล้วโปรแกรมเราก็ output เป็นพื้นที่ของสามเหลี่ยม
ตอนนั้นงัดข้อนี้ขึ้นมาทำเพราะเห็นทีมอื่นทำกันได้เยอะเลยเอาบ้างครับ ห่ะๆ โจทย์ส่วนมากก็ประมาณนี้แหละครับ รับ input ไปคำนวณ output ออกมา
แล้วเค้ากำหนดภาษาที่ใช้เขียนมั้ยครับ tool ที่เค้าให้มาในเครื่องให้อะไรมาบ้าง
แล้วเค้าตัดสินยังไง อย่างแรกคงต้อง input > output ถูกก่อน แล้ว algorithm ที่ใช้มีคะแนนมั้ยครับ
ตอนผมไปใช้ภาษาอะไรก็ได้จากรายการที่มีให้เลือกครับ (จำไม่ได้ แต่ผมใช้ Java)
ตัดสินให้คะแนนเป็นข้อครับ input มา output ถูกได้โป่งไปหนึ่งลูก algorithm ไม่มีผลครับ ตอนนั้นมีบางทีมใช้ brute-force โยนทิ้งไว้ เครื่องคำนวณไม่ทันหมดเวลา แต่ถือว่าส่งไปแล้ว ผลออกมาว่าถูกหลังจากหมดเวลาก็ได้คะแนนเพิ่มไปครับ (ผมนี่นึกไม่ถึงจริงๆ - -")
โห ใช้วิธีแบบนั้นก็ได้ด้วย คาดไม่ถึง (ผมอ้วน)
ส่วนใหญ่ brute-force แล้วมันจะเกินเวลาที่กำหนด (Time Limit Exceed) ครับ แต่ก็ไม่ใช่ทุกข้อจะเป็นแบบนั้น...
Dream high, work hard.
Dream high, work hard.
https://icpc.baylor.edu/worldfinals/problems/icpc2016.pdf
ลิงก์โจทย์ครับ
เป็นการแข่งขันใช้ทักษะสูงมากครับ ถ้าไม่แม่นอัลกอ และเขียนไว ข้อสอบยากสุดๆ รวมไปถึง Running Time อีกตามโจทย์กำหนด
มือใหม่!! ใหม่จริงๆนะ
ม.อ. ครับ ไม่ใช่ มอ.