acm-icpc 2008 @malaysia #1

การแข่ง acm-icpc เป็นการแข่งขันเขียนโปรแกรมระดับภูมิภาคในรอบแรกและระดับโลกในรอบถัดไป แนวโจทย์เป็นแนวโอลิมปิกหรือแนว problem solving แข่งเป็นทีม ทีมละ 3 คน สำหรับทีมผมมีพี่ต้น แก้วและผม  เวลาในการทำโจทย์จะให้เวลา 5 ชม.  ให้โจทย์ประมาณ 7-12 ข้อ  แต่มีคอมพิวเตอร์ให้เพียงเครื่องเดียว  จุดเด่นของการแข่งขันนี้(ซึ่งด้วยโลโกของงานก็สื่อออกมาเป็นอย่างดี) นั้นคือทีมไหนที่แก้โจทย์ได้จะได้ลูกโป่งมาผูกไว้ที่โต๊ะเพื่อไซโคทีมข้างๆ

ก่อนไปแข่งขัน พี่ต้น แก้วและผม เตรียมตัวก่อนไปโดยทุกวันเสาร์จะมานั่งซ้อมทำโจทย์เก่าของ acm-icpc นี้   ตอนแรกผมเองทำไม่ค่อยได้เท่าไหร่ ห่างหายไปนานครับ ต่างจากพี่ต้นที่คล่องมาก ได้ซ้อมกันอยู่ประมาณ 5 ครั้ง ก็รู้สึกว่าช่วยทำให้เขียนโปรแกรมคล่องมากขึ้น (แม้จะไม่เท่าตอนอยู่ค่ายโอก็ตาม) และตีโจทย์ได้ชัดเจนขึ้น (อันนี้เหนือว่าตอนอยู่ค่ายโอ เพราะประสบการณ์จากการได้อ่าน paper theory และได้เรียน algo อะไรมาอีกรอบ)

ในการแข่งขันนั้น เราได้เตรียม template ของ code ที่คิดว่าน่าจะได้ใช้ เพื่อให้เวลาเข้าไปทำแล้วจะได้ลอก code ได้เลย แล้วก็พยายามแบ่งน่าที่กันให้ชัดเจน หน้าที่ที่ได้จะประมาณ พี่ต้นเป็นคนเขียน code หลักเพราะว่าพี่ต้นเขียน code algo พวก shortest path หรือ max flow ได้แบบไม่ต้องคิดเท่าไหร่แล้ว แล้วก็ด้วยประสบกาณร์การทำโจยท์มหาศาลทำให้เขียนแล้ว bug น้อยมาก  ส่วนแก้วจะทำหน้าที่อ่านโจทย์แล้วแปลเพราะว่าอ่านได้เร็วที่สุด(ผมเองตกใจมากว่าทำไมแก้วอ่านได้เร็วแบบนี้ เวลาแข่งผมจะไม่มีสมาธิในการอ่านภาษาอื่น แล้วมันจะอ่านซ้ำไปซ้ำมาไม่ได้ความเท่าไหร่) เวลาที่ว่างก็ให้แก้วมาช่วยคิด  สำหรับผมเองนั้นรับหน้าที่คิดแก้โจทย์ครับ เพราะว่าอ่านก็ไม่เก่ง เขียนก็bug แต่ผมก็มีความถนัดเลขและอัลกออยู่เหมือนกัน

ที่จริงก่อนวันแข่งขันหนึ่งวัน จะมีโจทย์ให้ทดสอบเครื่องเรียกว่า mock test  ตอนนั้นถือเป็นเวลาแห่งความประสบความสำเร็จประจำ trip ครั้งนี้ครับ เพราะว่าพอได้โจทย์มา 2 โจทย์แรกง่ายมากขนาดที่พี่ต้น เขียนแบบไม่ต้องหยุดเลย  แล้วโจทย์ที่ 3 เป็นโจทย์เลข ระหว่างที่พี่ต้นเขียนจะเสร็จ ผมก็คิดวิธีออกและ make sure กับแก้ว ทำให้พี่ต้นเขียนข้อ 3 ต่อได้ทันทีแล้วก็ส่ง ได้เป็นที่หนึ่งไปเลย! (แม้เวลาสุดท้ายจะตกมาอยู่ที่ 3 เพราะว่ามีครั้งนึงที่ส่งผิดไป แล้วทำให้โดน time panalty ไป 20 นาที  ทีมอื่นๆ ที่ทำช้ากว่าถ้าไม่ผิดพอเค้าส่งมาครบเราเลยโดนแซง)

มาพูดถึงช่วงการแข่งขันเลยกันดีกว่า สำหรับผมบรรยากาศในการแข่งนั้นธรรมดามาก จากตอนแรกที่คิดว่าจะโดนไซโคจากลูกโป่งของคนอื่นก็ไม่รู้สึก ไม่ตื่นเต้นเท่าตอนสอบคัดตัวค่ายโอเลยด้วยซ้ำ ผมคิดว่าเป็นเพราะว่าโต๊ะที่นั่งของแต่ละทีมนั้นห่างกันจนไม่ได้ยินเสียงพิมพ์ดีดและไม่รู้สึกกดดันอะไร  แต่ผมขอสปอยล์เลยว่า ทีมเราได้ที่ 18 จาก 60  (อันดับนี้คืออันดับร่วมของทีมที่ทำได้ 3 ข้อ จาก 11 เหมือนกันหมด – -” ฉะนั้นได้จัดกันตามเวลาด้วย เราก็จะต้องตกอันดับลงมาอีก)

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

4 thoughts on “acm-icpc 2008 @malaysia #1

  1. รออ่านต่อ entry หน้า

    คอม 1 เครื่อง กับคน 3 คน

    คงต้องมีอะไรดีๆ แน่

  2. อ่าน ๆ ดูแล้วน่าตื่นเต้นดีครับ (แม้จะฅนละโลกกับผมก็ตาม)

    นี่อิ๊กกลับมาแล้ว หรือยังอยู่ที่มาเลเซียน่ะฮะ?

  3. สุดยอดไปเลย พึ่งรู้ว่าเค้ามีคอมให้เครื่องเดียว – -”

    ว่าแต่ ที่มาเล มีคลื่นของทรู (จำผิดป่ะว่ะ) เปล่า อิอิ
    จะได้มีกำลังใจ กิ๊วๆ ๆ ๆ ๆ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s