Hôm nay Vòng chung kết cuộc thi lập trình quốc tế ICPC 2019 sẽ được tổ chức tại thành phố Porto của Bồ Đào Nha, có đại diện của Đại học ITMO và các đội đến từ các trường đại học ở Nga, Trung Quốc, Ấn Độ, Mỹ và các nước khác sẽ tham gia. Hãy cho bạn biết chi tiết hơn.
icpcnews /flickr/ CC BY / Hình ảnh vòng chung kết ICPC-2016 tại Phuket
ICPC là gì
ICPC là cuộc thi lập trình quốc tế dành cho sinh viên. Chúng đã được tổ chức hơn 40 năm - trận chung kết đầu tiên thông qua trở lại năm 1977. Việc lựa chọn được thực hiện trong một số giai đoạn. Các trường đại học được chia theo khu vực (Châu Âu, Châu Á, Châu Phi, Châu Mỹ, v.v.). Mỗi nước đều đăng cai các giai đoạn trung gian, đặc biệt là vòng bán kết Bắc Âu diễn ra tại trường đại học của chúng tôi. Những người chiến thắng ở các giai đoạn khu vực sẽ tham gia vào trận chung kết.
Tại ICPC, các đội gồm ba người tham gia được yêu cầu giải một số bài toán bằng một máy tính (không kết nối Internet). Như vậy, ngoài kỹ năng lập trình, kỹ năng làm việc nhóm cũng được kiểm tra.
Trong quá trình thi đấu, các đội sẽ nhận được một máy tính dành cho ba người. Nó chạy Ubuntu 18.04 và được cài đặt sẵn vi/vim, gvim, emacs, gedit, geany và kate. Bạn có thể viết chương trình bằng Python, Kotlin, Java hoặc C++.
Khi một nhóm giải quyết được một vấn đề, nó sẽ chuyển tiếp vấn đề đó đến máy chủ thử nghiệm để đánh giá mã. Người tham gia không biết máy đang thực hiện những bài kiểm tra gì. Nếu tất cả đều thành công, đội sẽ nhận được điểm thưởng. Nếu không, sẽ xảy ra lỗi và học sinh sẽ được yêu cầu sửa mã.
Theo quy định của ICPC, đội nào giải được nhiều bài toán nhất sẽ thắng. Nếu có nhiều đội như vậy thì đội thắng sẽ được xác định bằng thời gian phạt đền nhỏ nhất. Người tham gia nhận được biên bản phạt cho mỗi vấn đề được giải quyết. Số phút bằng thời gian từ khi bắt đầu thi đấu đến khi máy chủ thử nghiệm nhận nhiệm vụ. Nếu đội tìm ra giải pháp thì đội đó sẽ bị phạt thêm hai mươi phút cho mỗi lần vượt qua sai.
icpcnews /flickr/ CC BY / Hình ảnh vòng chung kết ICPC-2016 tại Phuket
ví dụ về nhiệm vụ
Mục tiêu của chức vô địch đòi hỏi sự phối hợp và tập trung của toàn đội. Ngoài ra, họ còn kiểm tra kiến thức về các thuật toán toán học riêng lẻ. Dưới đây là ví dụ về nhiệm vụ được cung cấp cho những người tham gia ICPC 2018:
Trong kiểu chữ, có thuật ngữ "sông" - đây là một chuỗi khoảng trắng giữa các từ, được hình thành từ nhiều dòng văn bản. Một chuyên gia về sông nào đó (thực sự) muốn xuất bản một cuốn sách. Anh ấy muốn những dòng sông typographic dài nhất “hình thành” trên trang khi in ở phông chữ đơn cách. Những người tham gia phải xác định độ rộng của các trường mà điều kiện này sẽ được đáp ứng.
Ở đầu vào, chương trình nhận được một số nguyên n (2 ≤ n 2), xác định số lượng từ trong văn bản. Tiếp theo, văn bản được nhập: các từ trên một dòng được phân tách bằng một dấu cách và không được dài hơn 500 ký tự.
Ở đầu ra, chương trình phải hiển thị chiều rộng của cánh đồng nơi “con sông” dài nhất được hình thành và chiều dài của con sông này.