مسابقه icpc چیست؟

20 فروردین 1401
1,757 بازدید

مسابقه ICPC (آی سی پی سی ) یا همان ACM (ای سی ام) سابق چیست؟

ای سی ام ای سی پی سی (Association for Computing Machinery International collegiate programming contest)  یک مسابقه برنامه نویسی است که هر ساله در دنیا برگزار میشود. در این مسابقات تیم ها در قالب هایی ۳ نفره شرکت می کنند و به هر تیم یک دستگاه رایانه جهت برنامه نویسی داده می‌شود .

نحوه ی سنجش تیم ها به این گونه است که در مسابقات حدودا ۸ سوال محاسباتی و الگوریتمی می دهند هر تیمی سوال های بیشتری در مدت زمان کم تری  با خطای کم تری حل کند رتبه ی بهتری کسب می کند.

مسابقات منطقه‌ای غرب آسیا از سال ۱۳۷۸ تا کنون (به جز سال ۱۳۹۰) در دانشگاه صنعتی شریف برگزار شده‌است. مسئولیت این مسابقات بر عهدهه دکتر محمد قدسی است. مسابقه منطقه‌ای غرب آسیا عموما در اواخر پاییز هر سال برگزار می‌شود.

در چنین مسابقاتی علاوه بر تسلط بر یکی از زبان‌های برنامه‌نویسی سی، سی پلاس‌پلاس، جاوا یا پایتون (البته تضمین نمی‌شود تمام سوال‌ها به وسیله پایتون قابل حل باشند) مباحثی نظیر طراحی الگوریتم و ساختمان داده‌ها بسیار تاثیرگذار هستند.

چگونه در  مسابه دانشجویی برنامه نویسی شرکت کنیم؟

برای رسیدن به مسابقات جهانی ای سی ام شما باید در مسابقات منطقه ای شرکت کنید و در صورت گرفتن نتیجه خوب می توانید به مسابقات جهانی بروید . دانشگاه شریف هر ساله مسابقات ای سی ام  منطقه ای را در ایران برگزار می کند که در آن هرسال بهترین تیم های ایران و منطقه مثل هندوستان و روسیه  و … در آن حضور دارند.

 

هدف از ای سی پی سی چیست ؟

سوال اصلی در هر کاری این است که ما چرا باید در آن کار شرکت کنیم؟

این سوال در مورد  ACM به طور جدی تری مطرح است، زیرا یک مسئله ی فوق برنامه در دوران دانشجویی محسوب می شود که می تواند وقت و انرژی دانشجو را نیز بگیرد.آیا ما تنها به خاطر مزیت های پیروزی در مسابقات ACM در آن شرکت می کنیم؟ در این صورت فرق ACM با المپیاد کامپیوتر چیست؟ و اگر ما در این مسابقات پیروز نشویم، چه چیزهایی بدست آورده ایم و چیزهایی از دست داده ایم؟ و مهم تر از آن در هدف اکثر تیم های شرکت کننده وجود دارد.

برخلاف مسابقات المپیاد کامپیوتر که در آن هدف تنها استفاده از مزیت های پیروزی در این مسابقات است و در صورت باخت در آن جز اندکی علم خاص، چیز دیگری برای ما باقی نمی ماند، در مسابقات ACM هدف خود مسابقات است و نه پیروزی در آن! این بدان معنا است که شما در مسابقات ACM  برخلاف المپیاد، باید از خود مسابقات لذت ببرید، از کد زدن لذت ببرید و از فکری که پشت این کدها است؛ نه تنها برای پیروزی در این مسابقات و درج این پیروزی در رزومه ی خود. گرچه ACM  مزیت های قراردادی زیادی دارد، ولی هدف اصلی آن این مزیت فلسفی و ذاتی آن است.

 

روش برگزاری ACM ICPC

اساس این مسابقه بر مهارت‎های کد نویسی به زبان‎های جاوا، سی،سی پلاس پلاس و پایتون، همکاری تیمی و هنر حل مسئله است. این مسابقات به‌صورت تیم‌های سه‌نفره انجام می‎شود ولی در مواردی خاص مسابقات تک‌نفره آن نیز به‌ صورت مستقل برگزار می‎گردد.

سؤالات این مسابقات به‌صورت انگلیسی طراحی می‎شوند و عموماً به‌ صورت مشکلی در دنیای واقعی بیان می‌‎گردند.

شرکت ‎کنندگان باید با توجه به شرح مسئله و داده‎های نمونه شامل ورودی و خروجی درست مسئله، برنامه‎ای نوشته و برای داوران ارسال کنند. داوران با دریافت هر کد برنامه آن را اجرا و با داده‎های از قبل آماده‌شده به‌جز آن‎هایی که در اختیار شرکت‎ کنندگان است محک می‎زنند.

برنامه شرکت‎ کنندگان باید عیناً به ازای هر ورودی، خروجی موردنظر را چاپ کند در غیر این صورت برنامه آن‌ها رد خواهد شد.

این مسابقات به‌طورمعمول به‌صورت پنج‌ساعته برگزار می‎شود و معیار برتری هر تیم نسبت به سایر تیم‎ها تعداد سؤال حل‌شده آن‌ها در پایان مسابقه است.

در مورد تیم‎ هایی با تعداد سؤال برابر مجموع زمان مورد استفاده برای حل سؤالات معیار قرار می‎گیرد و زمان کمتر دارای رتبه بهتری خواهد بود.

در این مسابقات هر تلاش اشتباه در حل سؤالات با جریمه زمانی داوران همراه خواهد بود و زمانی به‌طورمعمول ۲۰ دقیقه به مجموع زمان آن تیم اضافه خواهد شد.

شما در مسابقه برای هر سؤال یک بادکنک! بارنگی خاص دریافت خواهید کرد و از بادکنک به‌عنوان نماد اصلی این مسابقات می‎توان یادکرد.یکی دیگر از رسم‌های مرسوم در این مسابقات ترکاندن بادکنک در پایان مسابقه می‌توان نام برد.

programming challenge

قوانین مسابقه icpc

مسابقات بین‌المللی برنامه‌نویسی دانش‌جویی یک مسابقهٔ تیمی می‌باشد. قوانین موجود بیان می‌کنند که هر تیم باید شامل ۳ نفر باشد. شرکت‌کنندگان باید در دانشگاه مشغول به تحصیل باشند و کمتر از ۵ سال سابقهٔ حضور در دانشگاه داشته باشند. دانشجویانی که دو بار در مرحلهٔ جهانی حضور داشته‌اند نیز نمی‌توانند در مسابقه شرکت کنند. مدت مسابقه ۵ ساعت و تعداد سؤالاتی معمولاً بین ۸ تا ۱۲ سؤال است. تیم‌ها که تنها یک رایانه در اختیار دارند، باید جواب‌های خود را در قالب کدهای سی، سی پلاس‌پلاس، پایتون یا جاوا به سیستم داوری خودکار ارسال کنند. سپس برنامه‌های ارسالی توسط داده‌ها مورد آزمایش قرار می‌گیرند. اگر برنامه‌ای نتواند در مقابل تمام داده‌ها پاسخ درستی بدهد مورد قبول قرار نمی‌گیرد و تیم با احتساب جریمه می‌تواند برنامه دیگری ارسال کند.

تیمی برنده است که بیشترین تعداد سوال‌ها را به درستی حل کند. اگر رتبه‌بندی تیم‌ها برای دریافت مدال و جوایز ضروری باشد، رتبه تیم با توجه به زمان سپری شده در هر مرحله برای ارسال پاسخ درست به علاوهٔ بیست دقیقه برای هر پاسخ نادرست که قبل از هر سوال حل شده ارسال شده، تعریف می‌شود.

به عنوان مثال شرایطی را برای دو تیم آبی و قرمز در نظر می‌گیریم. این دو تیم از نظر تعداد سؤالات حل شده با یک دیگر برابر هستند. تیم قرمز پاسخ‌های خود را برای سؤالات A و B به ترتیب در ۰۱:۰۰ و ۰۲:۴۵ پس از آغاز مسابقه ارسال کرده‌است. همچنین تیم قرمز یک پاسخ غلط برای سؤال C ارسال کرده‌است اما چون نتوانستند سؤال C را حل کنند این پاسخ غلط در نظر گرفته نمی‌شود. تیم آبی پاسخ‌های خود را برای سؤالات A و C در ۰۱:۲۰ و ۰۲:۰۰ پس از آغاز مسابقه ارسال کرده‌است. همچنین تیم آبی یک ارسال غلط برای سؤال C داشته‌است.نتیجه به این صورت ارزیابی می‌شود که تیم قرمز در مجموع ۰۱:۰۰+۰۲:۴۵=۳:۴۵ و تیم آبی در مجموع ۰۱:۲۰+۰۲:۲۰+۰۰:۲۰=۰۳:۴۰ زمان برای سؤالات صرف کرده‌اند. در نتیجه تیم آبی برنده است.

 

با شرکت در ای سی ام چه چیز به دست می آوریم؟

با شرکت در مسابقات ای سی ام علاوه بر لذتی که در آماده شدن و کد زدن و فکر کردن است به دو چیز خیلی مهم دیگر هم دست پیدا می‌کنیم:

۱ – طراحی الگوریتم

۲ – برنامه نویسی سریع

سوال های ACM سوال های خشک و کلیشه ای برنامه نویسی نیستند بلکه سوال‌هایی هستند که جنبه محاسباتی و الگوریتمی دارد پس با تسلط بر این سوال ها الگوریتم و ذهن خود را به شدت تقویت می‌کنید.

 

چطور برای مسابقات برنامه سازی دانشجویی آماده شویم؟

تیم های موفق در این مسابقات تیم هایی هستند که معمولا از سال اول آغاز دانشگاه استارت شروع کار را می زنند  پس تیم هاتون رو درست کنید و شروع کنید به کاربرنامه نویسی با رویکرد حل مسئله و…

اگر بخواهید از دوران دانشگاهیتون لذت ببرید باید کار تیمی رو زود شروع کنید.

منابع الکترونیکی بسیاری برای آماده‌سازی علاقه‌مندان به چنین مسابقاتی وجود دارد. یکی از مشهورترین آن‌ها که به خاطر رایگان بودن مورد استقبال بسیار نیز قرار گرفته‌است، کتاب الکترونیکی Art of Programming Contest نوشته احمد شمس العارفین می‌باشد.


منابع: open-mind و pelakweb و wikipedia

سایت رسمی مسابقه‌ی منطقه‌ای در ایران

سایت رسمی مسابقه‌ی جهانی

برچسب‌ها

مطالب مرتبط

پیام بگذارید



You Should login to send comment