اندر احوالات مرحله 3

سلام بچه ها

 

همون جوری که میدونید، از چند روز بعد از امتحان مرحله 2 تا همین چند وقت پیش، بلاگفا خراب بود و خب متاسفانه ما نتونستیم زمان آمادگی مرحله 3 باهاتون همراه باشیم و کمکی بهتون بکنیم.

مثلا من می خواستم یه پست بنویسم در مورد نحوه مرحله 3 خوندن، که خب بلاگفا نمیذاشت دیگه :)

 

یه پستی هست که پارسال تو چلنجر نوشتم، سطحیه ولی خوبه. ایناهاش : بلاگفا کلا با بلاگ مشکل داره، نمیذاره لینک بدم! تو گوگل سرچ کنید "چلنجر" برید پست "اندر احوالات مرحله 3 خواندن" رو بخونید.

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

 

یه کلاسی هم هست که انتشارات دانش پژوهان گذاشته برای آمادگی مرحله 3 و بیشتر مخصوص شهرستانی هاست. میتونید اطلاعات این کلاس رو تو این سایت پیدا کنید.

 

شاد و سرزنده باشید! :)

 

پ.ن : راستی یادم رفت، نتایج رو هم که دادن. تبریک می گم به همه قبول شده ها و امیدوارم همه قبول نشده ها هم تو ادامه زندگیشون موفق باشن. سال دومی هایی هم که قبول نشدن، صرفا باید بشینن خوب بخونن، سال دیگه قبول شند :) راستی یادتون نره باید کلی هم کد بزنید ها، فقط تئوری بخونید، زود از رقابت طلا جا می مونید.

شاززز در نظر دارد!

خبر مهم!

شاززز در نظر دارد!

زمان و موضوع در همین پست اعلام خواهد شد.

به گوش باشید!


خوب قضیه اینه که در نظر داریم امسال هم توی شاززز آزمون مرحله سه برگزار کنیم به امید خدا. :)

آزمون هم روز‌های دوشنبه ۲۰ خرداد سه شنبه ۲۱ خرداد و پنج‌شنبه ۲۳ خرداد شنبه ۲۵ خرداد خواهد بود. همچنین زمان آزمون از ۴ بعد از ظهر تا ۷ شب همان روز خواهد بود! اگه نظری دارید بگید تو نظرا. بهش توجه نمی‌شه به هر حال!

برای اطلاعات بیشتر در همین پست همچنان به گوش باشید!

فراموش نکنید به دوستاتون یه وقت خبر ندید...




پی نوشت خیلی خیلی مهم:

متاسفانه به دلیل کلاس های دوره تیم , آزمون شاززز به جای دوشنبه , سه شنبه هست.


پی نوشت 2: خب امروز عصر قراره که آزمون برگزار شه. برید توی این سایت , بعدش برید توی قسمت سایت امتحان برنامه نویسی. بعد ثبت نام کنید. اونجا یک سری سوال هست که میتونین برای تمرین سابمیت کنین تا با جاج آشنا شید. تا بعد...

پی نوشت 3: جاج در دست تعمیر است و لزوما تا قبل از شروع مسابقه رفتار درستی از خود نشان نمیدهد.


پی نوشت 4: جاج رو باز کردیم. ساعت 4:00 و لینک سوالا را هم توی خود شاززز و هم توی جاج میذاریم.

پی نوشت 5: تقلب توی آزمون صرفا جذابیت رو برای شما کم میکنه. لطفا تقلب نکنید. نظر ها تا آخر آزمون خصوصی میشود.

لینک سوالات

تموم شد..............
پاسخ نامه با کد ها و رنک لیست ( scoreboard ) روی سایت جاج قرار میگیره... ( ظرف دو سه دقیقه دیگه )

پی نوشت 6: کد سوال 3 الف رو اشتباه گزاشتیم. کد درست اینجاس. جاج با جواب کد این لینکی که دادم جاج میکرد سوال رو. به نفرات برتر آزمون هم تبریک میگم. شاد و خوش و پیروز باشید تا پنج شنبه ... :دی

خداحافظ!

سلام!

نتایج مرحله 3 اومد ، این هم لینکش : http://www.inoi.ir

به همه ی افرادی که قبول شدن تبریک میگم، به اون هایی هم که قبول نشدن باید بگم که اگه دوم هستین که خب سال بعد هم هست و باید از این یک سال استفاده کنن تا بتونن تو امتحان سال بعد بهتر ظاهر شن ، بچه های سال سوم هم اصلا نبابد نگران باشن ، چون تجربه ثابت کرده المپیادی ها تو کنکور خیلی خوب نتیجه می گیرن.

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

موفق باشید!

مرحله ۳ نزدیکه ! +‌ آزمون سوم

سلام ملت !

باز نزدیک مرحله ۳ شد و نصیحت ...

خوشبختانه امسال امتحانای شبه مرحله ۳ ی زیادی برگزار شد و احتمالا تا حالا دو سه تایی شو دادین .
این حرفا رو می خواستم زودتر بزنم ، ولی خوب بنا بر این شد که چند تا امتحان بدین و یکم تجربه ی امتحان دادن به دست بیارین ، تا شاید بهتر متوجه شین چقدر از این حرفا در موردتون صادقه ، چون در هر صورت اینا صرفا تجارب شخصیه .

اول اینکه توی این دو سال ، یه تعدادی از سوالا جاج داشته و یه تعدادی شون نداشته . پس احتمالا امسال هم همین طور خواهد بود .
چیزی که مهمه اینه که از جواب اون سوالایی که جاج ندارن مطمئن بشین .
این که ۳ تا سوال حل کنین و مطمئن باشین از درست بودنشون ، بهتر از اینه که ۵ تا حل کنین و بعد توی ۳ تاش بی دقتی کرده باشین و نمرشو نگرفته باشین .
پس سعی کنین تمرین کنین که هر سوالی رو به دو یا چند روش مختلف حل کنین تا از جوابا مطمئن بشین .

دیگه این که خیلی وقتا آسون بودن و سخت بودن سوالا برای افراد مختلف فرق داره ، و ممکنه ۱ سوالی که نمره ی زیادی داره واقعا سخت نباشه .
پارسال سوال ۲ روز اولو ( که ۱۵ نمره ای بود ) تعداد خیلی کمی حل کردن ، ولی سوال ۵ روز دومو ( که ۲۵ نمره ای بود ) خیلیا حل کردن و اصلا دستی هم حل می شد .
چیزی که توی هر امتحانی خیلی اهمیت داره تشخیص سوالیه که می تونین حل کنین .

یادتون نره نتیجه ی تلاشتون حتما قبول شدن توی مرحله ۳ و دوره رفتن نیست .

امتحان بعدی هم مثل دفعات قبلی فردا ساعت ۴ شروع می شه ، ۴ تا سوال داره و ۲:۳۰ ساعت وقت!

موفق و پیروز باشید


امتحان شروع شد!

سوالا رو میتونین از اینجا دانلود کنین!

فایل مورد نیاز سوال ۳ رو می تونین از اینجا دانلود کنین!

توجه:‌ در سوال ۴ نیز جواب را باید باقیماندده بر دلتا بگیرید! که در صورت ذکر نشده!

توجه:‌با عرض پوزش در سوال ۲ نیز باید باقیمانده ۹ رقم سمت راست جواب بر دلتا را باید چاپ کنید! که در صورت سوال ذکر نشده!

امتحان تمام شد. رتبه بندی رو میتونین اینجا ببینین!

راه حل سوالات در آرشیو گذاشته شد به زودی کد سوالات هم گذاشته میشه!

کد سوالات نیز آماده شد و می‌توانید از آرشیو دانلود کنید!



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

امیدوارم این امتحانا بهتون کمکی کرده باشه و چیزی یاد گرفته باشین :) از دوستای خوبمون محمدرضا ملکی و حامد ولیزاده و سامان سامی و دانیال مهرجردی هم تشکر می کنیم که تو آماده سازی این امتحانا بهمون کمک کردن.

خوش باشید!‌ مرحله ۳ هم خوب بدین :)

آزمون شماره دو

سلام!
خب همون طور که گفته بودیم، قراره این پنج شنبه هم آزمون بگیریم، آزمون این دفعه یکم نسبت به قبلی فرق کرده، تعداد سوالاتش شده ۴تا و وقتش رو هم کردیم ۲:۳۰ ساعت.
آزمون ساعت ۴ بعدازظهر به وقت تهران شروع می‌شه و به محض شروع آزمون سوالا هم روی سایت قرار می گیرن،اگه آزمون قبلی رو ندادین، لازمه برین اینجا ثبت نام کنید.

موفق باشید!



امتحان شروع شد سوالا رو میتونین از اینجا دانلود کنین.

امتحان تموم شد نتیج رو میتونین از اینجا ببینین.

راه حل ها هم آماده شد میتونین از اینجا دانلود کنید.

کد ها رو میتونین از آرشیو دانلود کنین. (فایل contest2-solutions.zip )


امتحان بعدی هم که آخرین امتحان ه ۵ شنبه هفته بعد برگزار میشه یادتون نره :)

آزمون مرحله 3

سلام!

خب یه مدت ه پست نزاشتیم که خب به خاطر امتحان های تیم و بلافاصله بعدش امتحان های نهایی بود که هنوزم تموم نشده.

قراره یه سری امتحان به سبک مرحله 3 برگزار کنیم. چون داریم به مرحله 3 نزدیک می شیم پس باید براش آماده بشید حتی اگر امتحان ترم 2 دارید ، چون دیگه بعد امتحان ها وقت زیادی ندارید.

درباره ی خود آزمون ها باید بگم که هر آزمون 3 تا سوال داره و زمانش هم 2 ساعت ه . آزمون ها در روز های پنجشنبه ساعت 4 بعد از ظهر شروع میشه.

آزمون ها روی http://sh44zzz.gigfa.com/m3 برگزار میشه . یه سری سوال هم به عنوان تمرین قراره رو سایت باشه که میتونید حل کنید و سابمیت کنید. 

سایت http://goharshady.blog.ir هم آزمون میگیره که خب میتونید آزمون های اون جا رو هم شرکت کنید.  

موفق باشید!




حامد:‌ حامد ولیزاده و سعید و علیرضا و محمدرضا ملکی هم تیم شدن! وقت نشد پست بزنیم براشون از همین جا بهشون تبریک می گیم ایشالا با ۴ تا طلا از ایتالیا بر می گردن :)


روی سایت امتحان هم دو تا امتحان که عید از بچه های مدرسه خودمون گرفتیم رو گذاشتیم میتونین تمرینی سابمیت کنید.

پ.ن. گویا در فزم ثبت نام یه مشکلی بوده که درست شد کسایی که نتونستن ثبت نام کنن دوباره بکنن.




امتحان اول امروز ساعت ۴ بعد از ظهر شروع میشه و طولش ۲ ساعته اگه هنوز ثبت نام نکردید در اینجا ثبت نام کنید. وقتی مسابقه شروع شه سوالا از روی سایت مسابقه و وبلاگ قابل دسترس ه. در حین امتحان میتونین در سایت سابمیت کنید و نتیجه آن را ییینید. نتایج نهایی بعد امتحان اعلام می‌شه.

پ.ن:‌ساعت سرور خرابه. امتحان راس ساعت ۱۶:۰۰ رسمی شروع می‌شه. می تونین از اینجا ببینین ساعت رسمی رو!

امتحان شروع شد. سوالا رو میتونین از اینجا دانلود کنین.

نتایج امتحان اول آماده است میتونین از اینجا ببینین.

راه حل ها هم آماده شد. توضیح راه حل ها و نیز کد ها رو میتونید دانلود کنید.

همه فایل های قابل دانلود در آرشیو قرار دارند.

پ.ن: در صورتی برای دانلود راه حل ها و کد ها با مشکل مواجه شدید می توانید آن ها را از آرشیو دانلود کنید.

پراجکت شاززز

سلام به همگی!

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

خب، تا مرحله ۳ وقت کمه! تنها توصیه‌ای که می‌تونم بکنم اینه که تمرین کنید. همین!
برای تمرین هم می‌تونید از سایت Project Euler استفاده کنید. البته همونطور که محمد می‌گفت ما یه سایتی رو آماده کردیم و سعی کردیم سؤال‌هایی که بیشتر ممکنه به درد بخوره رو جمع‌آوری کنیم. اسمش هم چی باشه خوبه؟ فعلاً Project Shaazzz اما پیشنهادات شما رو پذیرا هستیم! البته هنوز خیلی از سؤال‌ها وارد نشده، اما همین‌طور که شما سؤال حل می‌کنید، سؤال‌های جدید هم اضافه می‌شه. دقت کنید که نویسنده‌های شاززز چقدر زحمت‌کشن!

بعد از همه‌ی تمرین‌ها، امیدوارم با آمادگی کامل، امتحان خوبی داشته باشید.
موفق باشید!

آموزش برنامه‌نویسی: struct

سلام بچه‌ها همونطوری که زابل(یان!) هم گفت قسمت هفتم و احتمالا آخر آموزش برنامه‌نویسی آماده شد که میتونید از اینجا دریافت کنید!

منم واسه همتون آرزوی موفقیت (نه صرفا به معنی قبولی در مرحله ۲!) میکنم.

در ضمن دقت کنید که توی ساعات اولیه امروز دو پست گذاشتیم، پس نگید فعال نیستید!

پست جدید!

سلام رفقا. خوبید؟ امتحانات خوب پیش میره؟ ;)


یه سری حرفا هست که معمولا بعد از اعلام نتایج مرحله 2 زده میشه، ولی به نظرم رسید شاید قبلش بگم بهتر باشه (الان کمتر احساساتی هستید :پی):

اونایی که اسمتون قاطی لیست قبولی ها نیست(نخواهد بود!)، اول از همه باید به احساسات خودتون مسلط باشید و بدانید و آگاه باشید که قبولی تو المپیاد اونقدرا هم که فکر می کنید چیز با ارزش و مهمی نیست. باور کنید خیلی چیزای خفنتری تو زندگی هست. بعدشم، «مدال المپیاد داشتن» خیلی کم ارزش تر از «المپیادی» بودنه. خوشبختانه ماها هممون المپیادی هستیم B-). ادامه توضیحاتم رو میتونید اینجا بخونید. ;)

خب، حالا که به روحیتون مسلط شدید. اگه حس میکنید نمرتون به نمره قبولی نزدیکه، حتما برید اعتراض کنید. حتما!

اونایی هم که قبول شدید، اصلا انتظار نداشته باشید قبل از اینکه شام قبولیتون رو بخورم بهتون تبریک بگم. ولی فعلا علی الحساب دعا میکنم همتون طلا بگیرید! ;) :پی

در ضمن، از فردای اونروزی که نتایج مرحله 2 اومد، باید شروع کنید خودتون رو واسه مرحله 3 آماده(تر) کنید.  (روز اعلام نتایج رو دیگه بزارید واسه شادی و پایکوبی. خرخونا!)

از «سوالات آزمون مقدماتی سال های گذشته» استفاده کنید. ما هم یه برنامه هایی واستون داریم. یادتونه که قبل عید یه سری مقاله آموزش برنامه نویسی میزاشتیم اینجا؟ قسمت بعدیش به زودی میاد.

تازه یه برنامه خیلی خوف دیگه هم در دست اجراس، یه سایت شبیه پروجکت اویلر  داریم راه میندازیم، که امیدوارم تا چند روز دیگه بتونید ازش استفاده کنید و حسابی توش تمرین برنامه نویسی کنید. ;)


خب بسه دیگه، برید به امتحاناتون برسید.

المپیادی باشید! ;)

آموزش برنامه نویسی: Set

سلام

قسمت ششم.

خوش بگذره

آموزش برنامه نویسی: کار با فایل

سلام.

قسمت پنجم، آموزش کار با فایل در ++C.


شاد باشید!

آموزش برنامه‌نویسی: string

سلام

قسمت چهارم، رشته!
به هیچ‌وجه فقط به خوندن از روی مطلب اکتفا نکنید. خیلی جاها ریزه‌کاری‌هایی وجود داره که واقعاً نمی‌شه همه رو گفت، برای همین حتماً خودتون هم یه مقدار براش وقت بذارید.
در ضمن، سؤال چهارم روز دوم توی مرحله ۳ پارسال می‌تونه سؤال خیلی خوبی برای یه تمرین واقعی باشه.

موفق‌تر باشید

آموزش برنامه‌نویسی: vector

سلام

سومین مطلب آموزش برنامه‌نویسی در مورد vector هستش.
چند وقت پیش محمد به یه مطلبی اشاره کرد، که به نظرم درست اومد. اون هم اینه که در حالی که دارید با قابلیت‌های STL آشنا می‌شید و می‌بینید که چقدر کارهاتون رو راحت می‌کنه، دقت کنید که حتماً با این که هر کاری رو چطوری انجام می‌ده آشنا باشید.
در این مورد، خیلی خوبه که با الگوریتم‌هایی که برای نوشتن داده‌ساختارها و توابع استفاده شده آشنا باشید. در ضمن، یادتون نره که STL معجزه نیست و هیچ‌وقت قوانین زبان C++ رو زیر پا نمی‌ذاره.
برای همین، تمرین ۲ این سری بیشتر حالت تحقیقی داره.

فعلاً وکتوری باشید!

برنامه‌نویسی: Pair

سلام

این هفته قراره با Pair آشنا بشید.

جواب تمرین آخرش رو هفته ی دیگه میزارم.

موفق باشید.



جواب تمرین.


برنامه‌نویسی: Algorithm

سلام

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

قبل از شروع چند تا نکته:

1- الان که مرحله یک دادید، و احتمالا خیلی هنوز مشتاق شروع کردن درس‌های تئوری برای مرحله دو نیستید، پیشنهاد میدم که روی برنامه‌نویسی کار کنید. ( این پیشنهاد بیشترتر به سومی‌ها و بیشتر به دومی‌ها هستش. اول‌ها شاید یک کم براشون زود باشه. )

2- فرض رو بر این گذاشتیم که شما در حد ... , if , for , while و تابع، برنامه‌نویسی رو بلد باشید. اگر بلد نیستید خودتون می‌تونید این مباحث رو یاد بگیرید. کتاب آموزش زبان سی‌پلاس‌پلاس هم زیاد هست، کتاب جعفرنژادقمی ... دایتل اند دایتل و ... . من خودم کتاب هربرت شیلد (نشر اتحاد) رو خوندم. به نظرم کتاب قابل خوندن و خوبی هست. ( حداقل تا فصل 7 اش که تا تابع هست، رو میشه خودتون تنهایی یاد بگیرید. )

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

4- برای تمرین خوبه با سایت Project Euler که خود کمیته برای تمرین مرحله 3 (پارسال) معرفی کرده، کار کنید.

5- احتمالا 6 جلسه آموزش برنامه‌نویسی خواهیم داشت و هفته‌ای یک مبحث گذاشته میشه. ( یکی دو روز تاخیر جایزه!‌ )

 

همین.

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

این هم یک کد کمکی برای جا افتادن مطلب.

خوش باشید.

دل نوشته ها!

سلام ، خوبین؟ چه خبرا؟ زندگانی خوب پیش میره؟

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

اول ، به زبان ساده اگه بخوام المپیاد رو ترسیم کنم، این شکلیه : یه سری مسابقات جهانی به اسم المپیاد برگزار می شه. خب ما ایرانیا هم باید تیم بفرستیم به این مسابقات دیگه. خب الان می خوایم یه تیم انتخاب کنیم که برن واسه مسابقات. سبک مسابقات ببینیم چه شکلیه. خب به هوش و خلاقیت و بلد بودن یه مباحثی نیاز داره. پس بیایم یه امتحان برگزار کنیم و از بین دانش آموزا یه سری رو انتخاب کنیم برای تیم. اونا که این مطالبو بلد نیستن ، پس یه امتحان می ذاریم که کسایی که یه چیزایی بلدن و خلاقیت هم دارن انتخاب شن بیان براشون کلاس بذاریم و بعد بفرستیم جهانی. یه امتحان خیلی درصد خطاش زیاده و ممکنه افراد شایسته تری باشن و انتخاب نشن. واسه این همه داوطلب هم که نمی شه یه عالمه امتحان گذاشت. پس بیایم یه تعداد بیشتری (30 الی 40 تا ) انتخاب کنیم و کلاس بذاریم و تعداد زیادی امتحان بگیریم تا بهترین ترکیب واسه تیم مشخص شه .(بالاخره دوست داریم تیممون که میره جهانی بهترین نتیجه ممکن رو بگیره دیگه) برای انتخاب این 30~40 نفر هم ، چون داوطلبا خیلی زیادن ، نمی شه امتحان تشریحی گرفت ، امتحان تستی هم خیلی مناسب نیست ، پس اول یه امتحان تستی می ذاریم و بعد از منتخب ها یه امتحان تشریحی می گیریم.

خب الان فرض کنید با یه سری امتحان از این 30~40 نفر تیم مشخص شد.  این بچه ها باید کلاس داشته باشن تا قوی بشن واسه مسابقات. بعد هم باید اعزام بشن و برن جهانی. خب پس کی اینا کنکور بخونن؟! درسته که بچه های خیلی با استعدادی هستن ، ولی خب وقتی کنکور نخونن ، چیزی نمی شن تو کنکور دیگه !(و تنها مجرای رفتن به دانشگاه کنکوره) پس بیاین معافشون کنیم از کنکور. یعنی می گیم آقا جون ، تو بیا وقتت رو بذار واسه تیم ، کنکورت با ما! (واسه اینکه باز هم درصد خطای انتخاب تیم کمتر شه ، دو برابر تعدادی که واسه تیم می خوایم رو انتخاب می کنیم و اسمشون رو می ذاریم طلا و از کنکور معافشون می کنیم و به بقیه هم چون تابستونشون رو گذاشتن واسه این کار و از کنکوریا عقب افتادن یه سهمیه می دیم که جبران بشه)

به همین سادگی! این بود نحوه ی به وجود اومدن المپیاد از نظر من.

اما ببینیم از بیرون چه شکلیه! :

اول کار بچه ها بیشتر واسه ی علاقه وارد المپیاد می شدن. مثلا یادمه راهنمایی که بودیم ، یه سری کلاسهایی توی تابستون می ذاشتن به اسم کارسوق ریاضی. حدود سه شبانه روز یه سری از بچه های اصفهان و یزد و قزوین و کرج و که با آزمون ورودی انتخاب شده بودیم ، دور هم جمع می شدیم و یه سری کلاس و کارگاه داشتیم. توی کلاسا مباحثی مطرح می شد که عموما مربوط به المپیاد ریاضی و کامپیوتر بود ، بدون اینکه اسمی از المپیاد برده بشه. خب من و خیلیای دیگه از این چیزا خیلی خوشمون میومد و دنبال می کردیم ( حتی در حد همون 3 روز ) بدون اینکه هدفی برای شرکت تو المپیاد داشته باشیم. اصلا اون موقع فکر می کردیم این المپیادی های مدال آور که تو تلویزیون نشون می ده ، یه سری آدم عجیب و خفن و خارق العاده و خرخون که هیچ چیز غیر درس خوندن بلد نیستن و هستن! ( ولی الان فهمیدم یه سری آدم معمولی هستن مثه خودم )

البته منظورم این نیست که الان بچه ها بی علاقه یا زوری وارد المپیاد می شن. (البته چنین مواردی هم وجود داره)

اما این رو می بینیم که برای خیلی ها مهم ترین هدف شده طلا شدن و معافی از کنکور. نتیجه اش می شه چی؟ اینکه کسایی که به این هدفشون نمی رسن ، احساس شکست می کنن و ناراحت و شاید حتی افسرده می شن.

به نظر شما آیا این هدف برگزاری المپیاد بوده؟! هدف ایجاد نشاط علمی بوده یا ناراحتی طولانی مدت یه عده ی زیادی از دانش آموزا؟

بله ، این رو قبول دارم که بالاخره ذات انسان کمال طلبه و دوست داره همه جا موفق باشه. و طبیعتا اگه کسی توی هر یک از مراحل موفق نشه ، ناراحت می شه. اما این ناراحتی باید زود گذر باشه ، باید همراه با عزمی بیشتر برای کسب موفقیت توی زمینه دیگه باشه. به نظر شما فرق این دو نفر ، بعد از این که مرحله 2 قبول نشدن چیه ، قضاوت با خودتون! :

نفر اول از وقتی فهمیده اگه طلا بشه کنکور معاف می شه ، شروع کرده المپیاد می خونه ، سر بعضی کلاسها هم نمی ره ، چون می خواد حتما طلا بشه. همه فکر و ذکرش شده المپیاد و خیلی هم زحمت می کشه. شبا خواب طلا می بینه! اما توی مرحله 2 به هر دلیلی موفق نمی شه

نفر دوم ، المپیاد کامپیوتر رو دوست داره. کنار درسای مدرسه اش المپیاد می خونه . بعد از مدتی می بینه استعدادش رو هم داره و کم کم اگه درسی هست که خیلی نیاز به کلاس نداشته باشه ، نمیره سر کلاسش و عزمش رو برای شرکت توی مرحله 1 و 2 جزم می کنه! سر همه امتحانا هم با خودش می گه ، من که تلاش خودم رو کردم ، ایشالله هر چی صلاحمه اتفاق بیفته. چون دوست نداره اتفاقی براش بیفته که حتی اگه در ظاهر خوبه ، در آینده به ضررش باشه. این هم توی مرحله 2 به هر دلیلی قبول نمی شه

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

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

در پایان! اگه هدف اصلیتون پیچوندن کنکوره ، اشتباه اومدین! بهتره برگردین از اول شروع کنید.

پی نوشت 1: من این پست رو یه هفته پیش نوشته بودم ، ولی بکاپ نگرفته بودم و مشکل پیش اومد و پرید! (البته چیزی که اون موقع نوشته بودم یه کم فرق داشت ، شاید قسمت بود که یه چیزایی رو نگم و یه چیزای دیگه بگم! ) الان ساعت 1:30 نصفه شبه دارم اینو می نویسم فردا هم 6 صبح قراره با بچه ها بریم کوه! چه طوری بیدار شم حالا؟‼

پی نوشت 2: اگه غلط املائی یا انشائی دیدین تو متن ، بگین تا درستش کنم!

 

مرحله سوم برگزار شد! اما سوالات

سلام

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

اکثر سوال‌ها تو المپیادهای داخلی و خارجی اینطوریه که باید یه برنامه‌ای بنویسی و برنامه‌ت رو بفرستی برای سیستم!
اما خوب بعضی موقع‌ها هم اینطوری نیست! بعضی سوال‌ها اینطوریه که یک یا چند ورودی بهت می‌دند و می‌گند خروجی به ازای این ورودی‌ها چی می‌شه! اصلا هم کاری به این ندارند که چجوری این خروجی رو در ‌آوردی! اسم قشنگی هم داره.. به اینجور سوال‌ها می‌گند Output Only !
تو این امتحان هم تمام سوالها به صورت Output Only بود. یعنی در واقع شما رو مجبور به نوشتن برنامه نمی‌کنند.. اما خودتون مجبور می‌شید برنامه رو بنویسید!

تو این امتحان به هرکی یه عدد ∆ دادند که برای هرکی یکتاست،، بعد ازتون می‌خوان که جواب رو نسبت به ∆ بدست بیارید! چیز بامزه‌ایه کلا!


اما سوال‌ها!

۳ تا آزمون با ۳تا عنوان متفاوت برگزار شد که می‌تونید برید بگیریدشون:
آزمون آزمایشی ، آزمون اصلی اول ، آزمون اصلی دوم 

سوال چهارم آزمون اصلی دوم ، فایل marysub.txt رو به صورت ضمیمه داشت که برای حل سوال بهش نیاز می‌شه!

حل سوالات آزمون اصلی اول هم موجوده! می‌تونید بگیریدش


بچه‌هایی که سال دومی بودند و قبول نشدند حواسشون جمع باشه که به راحتی می‌تونند جبران کنند. کسایی که الآن مرحله۲ و مرحله۳ رو قبول شدند چیز زیادی بیشتر از شما ندارند! جز اینکه فقط و فقط یک امتحان رو بهتر دادند!
اما اگه شما تابستون رو به بطالت بگذرونید انوقت اونها چیزها از شما بیشتر خواهند داشت! چون اونها توی دوره‌ی تابستون چیزای زیادی یاد می‌گیرند
خلاصه سعی کنید وقتتون هدر ندره! این تابستون برای شما خیلی ارزش داره!

«پاینده باشید!»

جواب پست قبل + ‌آزمون برنامه نویسی + سوال

یا ستار

سلام بچه‌ها، خوبید؟

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

---------------------------------------------------------------------------------------------------------

در مورد آزمون برنامه نویسی. من چندبار سعی کردم از کمیته در مورد شکل این آزمون بپرسم، یکی از دلایل تاخیر تو پست زدن هم همین بود. چون می‌خواستم وقتی اطلاعات کامل بدست آوردم پست بزنم. احتمالا تا دو-سه روز آینده تو خود سایت http://www.inoi.ir اطلاعیه مربوط به این آزمون رو می‌زنند. اما تا الان می‌دونم که به احتمال زیاد این امتحان مثل امتحانیه که تو دوره ده روزه بهمن‌ماه برگزار شد. یعنی سوال‌هاش اون قالبی که من و حسام تو پست‌های قبل گفتیم نداره و خیلی ساده‌تره. برای اینکه بیشتر آشنا شید توصیه می‌کنم سوال‌های آزمون بهمن‌ماه رو بخونید. احتمال زیاد تا فردا-پس‌فردا اینجا می‌ذارمشون. فعلا تو ادامه این پست چندتا سوال مشابه این آزمون می‌ذارم. (سوال دومی رو جواد عابدی طرح کرده).

---------------------------------------------------------------------------------------------------------

۱- عدد تغییر در یک دنباله از اعداد صفر و یک را تعداد جفت‌های صفر و یک مجاور هم در آن دنباله تعریف می‌کنیم. اگر همه‌ی دنباله‌های ۱۳ بیتی (دنباله‌های ۱۳ تایی از اعداد صفر و یک) که عدد تغییرشان بزرگتر مساوی ۳ است را به ترتیب الفبایی مرتب کنیم، ۳۸۹ امین دنباله را پیدا کنید.

۲- عدد طبیعی n را گلابی می‌گوئیم، اگر به ازای هر عدد طبیعی مثل m که m < n، تعداد مقسوم علیه‌های n از تعداد مقسوم علیه‌های m اکیدا بیشتر باشد. ۲۱ امین عدد گلابی را پیدا کنید.

۳- در روستای «چشمه احمدرضا» ۴۶ چشمه و ۵۲ مزرعه وجود دارد. چشمه ها در بالای روستا در کنار هم در یک خط قرار دارند. همچنین مزرعه‌ها در پایین روستا در کنار هم در یک خط قرار دارند. می‌خواهیم از تعدادی از این چشمه‌ها به این مزارع کانال آب بکشیم،‌ به طوری که هر چشمه و هر مزرعه حداکثر به یک کانال متصل باشد و هیچ دو کانال آبی هم را قطع نکنند. باقیمانده «تعداد راه‌های ممکن برای کانال کشی با این شرایط» بر ۱۰۰۷ چند است؟ (مثلا یکی از حالات ممکن این است که هیچ کانال آبی نداشته باشیم).

---------------------------------------------------------------------------------------------------------

این سوال‌ها اگرچه جوابشون تنها یک عدد است، اما برای محاسبه‌شون نیاز به نوشتن برنامه دارید. جواب این‌ها (جواب آخر و نحوه محاسبه هرکدوم) رو تو پست‌های بعدی می‌ذارم. راستی یادم رفت بگم! از آقای حسن نژاد پرسیدم گفت ۲۰ خرداد نتایج همه المپیادها میاد. (آقا این جمله فقط نقل قوله. یعنی من خودم هم مطمئن نیستم!)

خب دیگه! رفع زحمت کنم!

در پناه حق!

چندتا چیز

سلام بچه‌ها!

این پست هم مثل پست قبل راجع به آزمون‌های برنامه‌نویسیه. ببینید بچه‌ها، کلا فرم یه سوال برنامه نویسی که کمیته المپیاد کامپیوتر تا الآن برگزار می‌کرده اینطوری بوده که الآن می‌گم!

یه فرم خیلی باحالی داره! اول اینجوری شروع می‌شه که انگار دارند برای کودکان رده سنی الف قصه تعریف می‌کنند! D: بعد کم کم هی توش می‌گن ازت چی می‌خوان و آخر سر دیگه به طور دقیق همه چیز رو مشخص می‌کنند. هر سوال برنامه نویسی هفت بخش داره:

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

بخش دوم. اسم این بخش، بخش «مسئله» است. تو این بخش جواب سوال «خوب که چی؟» شما رو می‌دند! می‌گن که این داستان رو تعریف کردیم که از شما چی بخوایم. و به طور مستقیم می‌گن که «برنامه‌ای بنویسید که ... ».

بخش سوم. این بخش، بخش محدودیت‌هاست. تو این بخش می‌گن که اعدادی که به ورودی کامپیوتر شما داده خواهد شد تو چه بازه‌ایه و از چه جنسیه! منظورم از چه جنسیه اینه که عدد صحیحه، عدد حقیقیه، گویاست، رشته از کاراکترهاست یا ... !

بخش چهارم. این بخش که بهش می‌گن بخش ورودی توش می‌نویسند که ورودی چه شکلی خواهد بود. مثلا می‌گن تو خط اول تعداد گلابی‌ها (n) و تو خط دوم nتا عدد هست که هرکدوم وزن گلابیه iام هست (Wi) !

بخش پنجم. این بخش هم بخش خروجی هستش. تو این بخش مشخص می کنند که برنامه‌ی شما باید خروجیش به چه شکلی باشه. یعنی شما باید چه جوری خواسته‌ی مسئله رو چاپ کنید.

بخش ششم. خوب تا اینجا دیگه همه‌ چیز مسئله گفته شده و شما باید دقیقا فهمیده باشید که سوال از شما چی می‌خواد. ولی این بخش هم که بخش «ورودی و خروجی نمونه» هستش رو گذاشتن برای اینکه چیزی که از سوال رو فهمیدید رو باهاش تست کنید ببینید درست فهمیدید یا نه! بعدش که الگوریتم سوال رو در آوردید باهاش چک کنید ببینید الگوریتمتون درسته یا نه! بعد هم که کدتون رو زدید باز چک کنید ببینید که آیا کد رو درست زدید؟! خلاصه این بخش، خیلی بخش به درد بخوریه! ممکنه توش یک یا چند تا نمونه باشه

بخش هفتم. این بخش توش نوشته که برنامتون چقدر می‌تونه حافظه مصرف کنه! و از وقتی که شروع می‌کنه به گرفتن ورودی تا زمان چاپ کردن خروجی و خارج شدن از برنامه چقدر می‌تونه لفتش بده! یعنی چند ثانیه! معمولا سوال‌ها می‌زارن برنامه‌ی تو یک ثانیه لفت بده.

هوف! D: چقدر بخش داشت! البته تو سوالا که می‌دن اینطوری انقدر مرتب نیست‌. مثلا تو اون سوالی که علی تو پست قبل داده بود بخش اول و دوم ادغام شده، بخش سوم و چهارم هم ادغام شده. بخش هفتم هم نداره کلا ! معمولا این بخش هفتم رو روی در و دیوار برگه می‌نویسند، باید اون بالا مالاها یا اون زیر میرا دنبالش باشید! تو حاشیه‌ست کلا

میمونه روش نمره‌دهی! یه برنامه که می‌نویسی رو چطور بهش نمره می‌دند؟! خیلی ساده! چند تا ورودی نمونه که از قبل طراحی کردند رو می‌دند به برنامه‌تون بعد چک می‌کنند که ۱. کامپایل شه (Compile error نخوره) ۲. خیلی لفتش نده (Time limit نشه) ۳. زیاد فضا نخواد(Memory limit نشه) ۴. کارهای بد بد نکنه (Runtime error نخوره) ۵. خروجی صحیح تولید کنه (Wrong نشه)
اگه همه‌ی گزینه‌ها رو رعایت کنه می‌گند اون تست رو Pass شد! (البته این Pass شد خیلی هم رایج نیست!) در این صورت نمره‌ی اون تست رو می‌گیرید و میره سراغ تست بعدی. معمولا به برنامه‌ی شما ۱۰ تست می‌دند که هر تست ۱۰ نمره داره! یعنی هر سوال ۱۰۰ نمره. شاید هم ۲۰ تا تست دادند که هر تست ۵ نمره بشه.
البته این روش نمره‌دهی، روشی بود که تا الآن توی امتحانات ما و قبل از ما برگزار می‌شده! شاید عوض شه




حالا می‌خوام جواب سوالی که علی تو پست قبل نوشته بود رو بدم! (با اجازه‌ی علی آقا)

اون سوال یک حل حریصانه یا greedy داره. حلش اینطوریه که هر کاری که زودتر تموم می‌شه رو زودتر انجامش می‌دیم بره! حالا اثبات کنید که چرا این حل درسته. با برهان خلف می‌شه راحت اثباتش کرد.
به این نوع حل (الگوریتم) می‌گن الگوریتم حریصانه چون که الگوریتمتون داره حریصانه عمل می‌کنه (یعنی داره می‌گه: «هرچی کمتر، بهتر!»)
من کد خودم رو برای این سوال روی شبکه جهانی اینترنت قرار دادم که می‌تونید از اینجا برید بگیریدش! البته می‌شه این کد رو تمیزتر و کوتاه‌تر و سریعتر هم زد (با استفاده از همون تابع sort ) .




امتحان دادن توی خونه، با امتحان دادن توی باشگاه خیلی فرق‌ها داره! وقتی نشستی توی خونه تنهایی و می‌شینی رو مسئله فکر می‌کنی. ولی توی باشگاه ۵۹ نفر دیگه هم دارند با تو فکر می‌کنند! اوضاع فرق داره. مثلا تو داری روی الگوریتم سوال فکر می‌کنی و خیلی هم داغ کردی! ولی بقیه همه صدای کیبوردشون بلند شده و داره کد می‌زنند.. یه حس عجیبی میاد سراغت! به خاطر همین باید تمرین تمرکز هم بکنید،، خیلی مهمه که سر امتحان تمرکز زیاد داشته باشید.




برای منبع سوال برنامه نویسی سایت المپیاد کامپیوتر آمریکا و سایت برنامه‌نویسی SGU خوبند.
ولی به نظرم SGU سوالاش زیادی زیاده بعد توش گم می‌شید! مگر اینکه کسی باشه که بهتون بگه کدام سوال ها خوبند (خوب با آسون فرق داره‌ها!)

ولی من هم چند سوال توی ادامه‌ی مطلب گذاشتم و نوشتم که چطور کدتون رو برام بفرستید تا بهتون بگم که نمر‌تون از سوال چقدر می‌شه!

به به! عجب پستی شد D:

موفق باشید.


ادامه نوشته

آزمون مقدماتی برنامه‌نویسی + برنامه‌نویسی + سوال

یا لطیف

سلام بچه‌ها! حالتون خوبه؟ ما هم خوبیم. خداروشکر!

این پست در مورد آزمون مقدماتی برنامه نویسی است. قبول دارم یه کم دیر این پست رو می‌زینم. راستش ما، هم درگیر امتحان نهایی هستیم هم منتظر بودیم تا کمیته نوع و سطح سوالات این امتحان رو معلوم کنه بعد پست بزنیم اما فعلا خبری نیست. قراره وقتی کمیته درمورد نوع سوالات و نحوه امتحان تصمیم قطعی گرفت، توضیحاتش رو تو سایت http://www.inoi.ir بذاره. ما هم اگه خبردار شدیم اینجا می‌نویسیم. حالا فعلا تو این پست یه سری توضیحات کلی درمورد آزمون‌های برنامه نویسی و خود برنامه نویسی می‌نویسم تا ببینیم چی می‌شه.

------------------------------------------------------------------------------------------------------

به طور کلی تو امتحان‌های برنامه نویسی شما مثلا ۵ ساعت وقت دارید و به شما چندتا سوال داده می‌شه که هر کدوم به این شکل هستند:

برنامه ای بنویسید که از ورودی استاندارد (همون صفحه کلید) ورودی مسئله را بخواند و با توجه به صورت سوال خروجی برنامه را محاسبه کند و آن را در خروجی استاندارد (همون صفحه نمایشگر) چاپ کند! (می‌بینید که چقدر سوال‌ها ساده است!)

این لینک ۳ تا سوال برنامه نویسی به زبان فارسی داره که البته سوالاش خیلی سخته و امتحان شما خیلی از این آسون‌تر خواهد بود. این لینک رو گذاشتم فقط برای اینکه ببینید قالب کلی سوال ها چی‌جوریه. (راستش لینک دیگه‌ای دم دستم نبود که سوال‌هاش فارسی باشه).

زمان ما همه امتحان ها تو linux بود اما از سال ما به بعد تو دوره تابستون با بچه‌ها تو windows کار می‌کردن و تو دوره نقره-طلا بهشون linux یاد می‌دادند. احتمالا این امتحان شما هم توی windows هستش. برنامه‌هاتون رو هم باید به زبان ++C بنویسید.

------------------------------------------------------------------------------------------------------

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

سایت www.cppreference.com: یکی از سایت‌های خوبه که توش در مورد کتاب‌خونه‌ها و چیزای دیگه‌ی ++C خیلی خوب و مختصر توضیح داده.

سایت http://www.cplusplus.com: توش هم یه بخش داره برای آموزش هم یه مرجع برای کتابخانه‌های ++C داره، هم یه forum داره که توش می‌تونید سوال بپرسید.

معمولا تو امتحان‌ها یه مرجع ++C در اختیار مسابقه‌دهنده‌ها هست. مثلا تو جهانی پارسال و توی امتحان انتخاب تیم امسال همین سایت www.cppreference.com به عنوان مرجع در طول امتحان در اختیار مسابقه‌دهنده‌ها بود. (البته این به معنی دسترسی به اینترنت نیست. بلکه صفحه‌های این سایت روی کامپیوتر ذخیره شده و ملت می‌تونن ازش استفاده کنن). تو این امتحان‌ها یه PDF هم بود که برای آموزش ++C بود و اینجا براتون آپلودش کردم (به نظرم این PDF همون قسمت آموزشی http://www.cplusplus.com هستش که به صورت PDF در آوردنش).

یه نکته مهم در مورد ++C، کتابخانه STL هست. این کتابخونه توش هم یه سری تابع بسیار به درد بخور داره و هم یه سری ظرف (ترجمه container!) . این توابع و ظروف! این‌قدر زیادن که من بعد عمری! کار کردن با این کتابخونه هنوز توش چیزای جدید پیدا می‌کنم. البته اگه این‌ اسم‌ها براتون جدیده اصلا نگران نشید. چون به نظرم خیلی بعیده تو این امتحان سوالی بدن که نیاز به استفاده از این ها مخصوصا container ها داشته باشین. اما به نظر من درمورد تابع مرتب‌سازی این کتاب‌خونه اگه استفاده ازش رو بلد باشین خیلی خوبه. از اسمش معلومه که چی‌کار می‌کنه و احتمالا خودتون هم می‌تونید بدون استفاده از STL این تابع رو بنویسید، ولی به هرحال یاد گرفتنش خیلی کارو راحت تر می‌کنه. اسم این تابع sort هستش و نحوه استفاده‌اش این‌طوریه:

فرض کنید شما یه آرایه از اعداد (مثلا از نوع int) به اسم num دارید که توش n تا عدد ذخیره کردید و حالا می‌خواید اعدادش رو مرتب کنید. کافیه از تابع sort به شکل زیر استفاده کنید:

sort(num, num + n);       // num esme arayatoone va n tedad adade tooshe.

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

------------------------------------------------------------------------------------------------------

کتاب مسئله‌های الگوریتمی، مسئله ۸۰. متوسط زمان پاسخ یک ماشین:

n کار را می‌خواهیم روی یک ماشین اجرا کنیم. اجرای کار شماره ‌i به اندازه‌ی ti زمان می‌گیرد. ماشین در هر لحظه حداکثر می‌تواند یکی از کارها رو انجام دهد. برنامه‌ای بنویسید که ترتیبی برای اجرای این کارها پیدا کند، به طوری که متوسط زمان پایان یافتن کارها مینیمم شود.

ورودی: در سطر اول ورودی n و در سطر بعدی ti ها نوشته شده‌اند. فرض کنید n <= 100 و ti ها صحیح و مثبت اند.

خروجی: در سطر اول فایل خروجی متوسط زمان پایان یافتن کارها و در سطر دوم ترتیب انجام کارها رو بنویسید.

مثال:

ورودی نمونه:

5

34  23  52  13  42

خروجی نمونه:

79

4  2  1  5  3

------------------------------------------------------------------------------------------------------

اگه حلش کردید کدش رو هم بزنید. خب دیگه من باید برم فیزیک بخونم!

موفق باشید

فعلا خداحافظ!

قبول شدگان دوره ی ۱۰ روزه

سلام! خوبید؟!

یه دوره‌ای ۱۰ روزه قراره که برگزار بشه برای بچه‌هایی که پارسال مرحله دومشون رو خوب دادن!

از ۲۱ام هست تا ۲۹ام. توی دوره بیشتر برنامه نویسی کار می‌کنن و شایدم الگوریتم کار کردن یه کمی

باشگاه گفت که اسامی بچه‌ها رو بخشنامه کرده به مدارس. ولی چون تو سایت باشگاه نزدن اسامی رو اینجا من می‌نویسم

اسامی در ادامه مطلب درج شده است.

ادامه نوشته

آموزش الگوریتم

به نام خدا
سلام.
آقا راستش تصمیم گرفتم چندتا از الگوریتم هایی رو که معمولا تو دوره نقره-طلا گفته میشه رو اینجا به صورت آموزشی بنویسم. این مطالب هم می تونه به درد بچه هایی که الان تو دوره هستند بخوره، هم به درد اونایی که الان تو دوره نیستند و می خوان از بچه های دوره عقب نمونند. تصمیم داشتم اولین الگوریتمی که می‌گم 2sat باشه، ولی فکر کردم قبلش از شما یه نظر سنجی بکنم تا اگه کسی نمی‌خواد بی خودی پست نزنم.

موفق باشید.
علی

مقررات جدید المپیاد کامپیوتر

سلام ، خوبین؟ خوش می گذره؟ چه خبرا؟ ما هم خوبیم ، الحمد لله!

در مورد قوانین جدید و اون فایل PDFی که گذاشته بودیم ، ما هم در همون حدی که شما می دونین می دونیم. من توی فوروم المپیاد کامپیوتر که دکتر قدسی این توضیحات رو داده بودند ، چندین بار سوال کردم که هدف از این کار چیه و بچه ها چی باید بخونن و ... . اما هنوز کسی جوابگو نبوده. علت این که سوالات شما رو هم که توی بخش نظرات بود جواب ندادم همین بود. چون یا سوالاتون تکراری بود یا اینکه جوابشون رو نمی دونستم!

در اولین فرصتی که خبر جدیدی به دستم برسه ، حتما اعلام می کنم. پس لطفا سوال نفرمایید!

اخبار جدید (همه بخوانند!)

آقای دکتر قدسی ، رئیس کمیته ملی المپیاد کامپیوتر لحظاتی پیش توضیحاتی در مورد المپیاد کامپیوتر امسال دادند که متن آن به شرح زیر می باشد: ( اُه! چه ادبی شد! )

:" به لینک
http://ce.sharif.edu/~ghodsi/inoi/inoi-new-chart.pdf
مراجعه و فایل مربوطه را دانلود کنید و آن را به دقت بخوانید. این فایل حاوی جزییات برنامه‌ی جدید است.

چند نکته‌ی فوری:
۱- کلاس‌های سومی از امسال می‌توانند در مرحله‌ی اول شرکت کنند. مرحله‌ی اول امسال ساده تر از سال‌های پیش است و حدود ۱۰۰۰ نفر از شرکت کنندگان سال اول تا سوم انتخاب می‌شوند تا در مرحله‌ی دوم شرکت کنند.
۲- مرحله‌ی دوم در دو روز برگزار می‌شود. دانش‌پژوهانی که در دوره‌ی تابستان ۸۸ برنز نگرفته اند از شرکت در مرحله‌ی اول و دوم معافند. اما برنزی ها مانند دانش‌پژوهان جدید باید شرکت کنند.
۳- از مرحله‌ی دوم کلا ۶۰ نفر انتخاب می‌شوند تا در آزمون برنامه نویسی ای که درست قبل از تابستان برگزار می‌شود شرکت کنند. تا بر اساس این نمره‌ی این آزمون و نمرات آزمون‌های مرحله‌ی اول و دوم، ۳۰ نفر برای دوره‌ی تابستان ۸۹ انتخاب شوند.
۴- حدس زده می‌شود که برخی از بچه‌های نقره‌ای تابستان ۸۸ که هم اکنون سال سوم هستند ترجیح می‌دهند که به دنبال کنکور بروند. اما اگر بخواهند می‌توانند بدون شرکت در مرحله‌ی اول و دوم و نیز آزمون برنامه نویسی در دوره‌ی تابستان ۸۹ شرکت کنند. البته این دانش‌پژوهان دیگر مجاز به شرکت در کلاس‌های درس تابستان نیستند ولی باید فقط در آزمون‌های آن شرکت نمایند.

موفق باشید "

دوره نقره-طلا

به نام خدا

سلام به همه دوستان!

من علی باباییم. هم دوره‌ای علیرضا ذاکری و یکی از نویسنده ‌های دیگه این وبلاگ.
راستش چند روز پیش با یکی از بچه‌های دوره نقره-طلا در مورد دوره‌شون صحبت می‌کردیم، فکر کردم بد نباشه اینجا هم یه سری توضیحات بدم.
تو این دوره برای بچه‌ها ۲-۳ تا دوره‌ی دو هفته‌ای می‌ذارن که توش یه سری مباحث جدید می‌گن و آخرش امتحان‌های نهایی است که توش مدال طلاها و ۶ نفری که باید برای تیم رقابت کنند مشخص می‌شه. البته احتمال داره با طرح جدید کمیته این چیزها تغییر کنه.
مهمترین مباحثی که تدریس میشه این هاست:

flow , mincut

segment tree

kmp

matching, wmatching, vertex cover, ...

2connected vertex-edge component

2sat

eulerian tour

strongly connected components

convex hull

equation system

یاد گرفتن یه الگوریتم نیاز به این داره که خودتون بخونیدش و کدش رو بزنید. منظورم اینه که خیلی رو کلاس‌های دوره برای یاد گرفتن این چیزها حساب نکنید و خودتون اون ها رو بخونید و تمرین کنید. مخصوصا اگه معلماتون نتونن خیلی خوب بهتون توضیح بدن (اتفاقی که سر دوره ما افتاد). واسه اینکه خودتون این ها رو بخونید منبع زیاده. از نوع کتابیش CLRS و creative و از نوع اینترنتیش رو هم خودتون سرچ کنید. مثلا اولین لینک تو قسمت پیوندهای همین وبلاگ ۳ تا از این درس ها رو توضیح داده.

یکی از کارهای مهمی که بچه ها تو این دوره انجام می‌دن حل مساله‌ تو سایت‌های اینترنتی است. مهمترینش (به نظر من) usaco است. تو این سایت یه سری سوال هست که باید به ترتیب (بخش به بخش) حلشون کنید و یه سری هم مطالب آموزشی داره که توش خیلی از الگوریتم ها رو یاد داده و خیلی مفیده. سایت های دیگه هم هست که اکثرا ACMای اند ولی برای تمرین کد زدن خیلی خوبند. بهترینش (بازم به نظر خودم) SGU است. اما اولویتتون تو این سایت ها USACO باشه بهتره. لینک این سایت ها تو قسمت پیوندهای همین وبلاگ هستش.

یک کار مهمه دیگه هم امتحان دادنه. امتحان‌های آنلاین اینترنتی فت و فراوونه. یکی از خوب‌هاش بازم مال سایت usaco است و یکی دیگه یه سایته برای المپیاد ملی کرواسی که آدرس‌هاشون به ترتیب اینهاست:

http://ace.delos.com/contestgate

http://hsin.hr/coci/

به جز امتحان‌های آنلاین خودتون هم می‌تونید سوال‌ها و testdata های امتحان های قدیمی رو پیدا کنید و از خودتون امتحان بگییرید. مثلا INOI و IOI و CEOI های سال‌های قبل خوبند.

امیدوارم حرف‌هایی که زدم به دردتون بخوره.

فعلا خداحافظ.

برنامه تایپ

سلام
من ۴، ۵ تا برنامه تايپ دانلود كردم چند تاشون كه واقعا بد بودن فقط ميگفتند اين متن و تايپ كن و ياد نمي دادن
چند تا ديگش هم پولى بودن واسه همين رفتم به سراغِ محصولاتِ لينوكس تو ويندوز كه مجانى باشن
الان اين لينكى كه گذشتم مالِ gtypist در ويندوز هستش!!
اگر ميخواهيد تايپ درست ۱۰ انگشتی ياد بگيرين حتما هر مرحله كه  جلو مي رين اون متن و بخونيد كه كليد رو با انگشتِ درست بزنيد چون اگر اشتباه ياد بگيرين درست كردنش خيلى مشكل خواهد بود.

همين الان، من هنوز ۳، ۴ تا دكمهِ بالاى کیبورد رو اشتباه ميزنم و همون باعث ميشه سرعت تایپم بياد پائين

http://www.vultaire.net/software/gtypist/index.php.en

وقتى اين صفحه باز شد شما رو ( EXE (recommended كليك كنيد و دانلودتون شروع ميشه
نیم MB هم بيشتر نيست پس همه ميتونن دانلود كنن

Type

سلام

به عنوان یه موجودی (بالطبع 1 سر + 2 دست + 2 پا) که داره برای المپیاد کامپیوتر دست و پا می زنه خوبه که یه کمی هم به فکر یادگیری تایپ 10 انگشتی باشین.

کلا ضایعست که یه المپیاد کامپیوتری موقع تایپ کردن سرش توی کیبورد باشه.

برای اینکه سرعت تایپتون بالا بره , کافیه که روزی نیم ساعت از زمان بیکاریتون رو ( بجای بحث سیاسی ) تایپ تمرین کنین.

فعلا سایت زیر رو پیشنهاد میکنم.

www.typingcup.com/test/test.html

در آینده ی نزدیک هم یه برنامه ی تمرین تایپ (درست و حسابی) میزارم برای دانلود . هر چند اگه خودتون هم سرچ کنین چیزای خوبی گیر میارین.

در ضمن حتما حتما سعی کنین که تایپ رو بصورت اصولی (10 انگشتی) یاد بگیرین

سوال های دوره تابستان

مساله اول: مهره ها......................................................................................................... 30 نمره

دو مساله زیر را در نظر بگیرید:

مساله A: گراف G و تعدادی مهره روی بعضی رأس های  آن داده شده است. می خواهیم مهره ها را روی یال ها طوری حرکت دهیم که زیر گراف القایی رأس های  که شامل حداقل یک مهره اند همبند شده و مجموع حرکات مهره ها نیز کمینه شود.

مسألهB  :
گراف 2 بخشى H كه مجموعه ی دو بخش آن X و Y مى باشند داده شده است. مي خواهيم كوچيكترين زير مجموعۀ X مانند S را پيدا كنيم به طورى كه N(S)=Y
ثابت كنيد اگر براى مسأله A  الگوریتم چند جمله ای وجود داشته باشد براى مسأله B نيز الگوریتم چند جمله ای وجود دارد.

 

مساله دوم: رنگ کردن مربع ها........................................................................................... 35 نمره

 

n مربح به ضلح واحد طوری در صفحه قرار گرفته اند که اضلاع شان موازی محور های مختصات بوده و مختصات طولی یا عرضی هیچ دو مربعی برابر نیست. یک عدد k به شما داده شده است و به شما گفته شده که هیچ k+1 مربعی وجود ندارد که هر دوتایشان با هم اشتراک داشته باشند.

ثابت کنید می توان این مربح ها را با حداکثر 2k-1 رنگ , طوری رنگ کرد که رنگ هرمربعی که با هم اشتراک دارند متفاوت باشد.

 

مساله سوم: مجموعه........................................................................................................15 نمره

 

ثابت کنید تعداد زیرمجموعه های مجموعه ی {1,2,…n} که دارای میانگین طبیعی هستند زوج تا هستند.

 

مساله چهار : شمارش........................................................................................................ 10 نمره

 

تعداد گراف های همبند بیشتر است یا نا همبند ؟

 

مساله پنجم : باز هم مساله!؟؟؟ ............................................................................................... 0 نمره

 

اگر 4 مساله قبل را حل کردید می توانید با خوشحالی جلسه را ترک کنید, در غیر این صورت سعی کنید آن ها را حل کنید !!!!

 

سوال های 1و2و5 امتحان دوره تابستان 85 هستش !!! سوال 3 حل مساله دوره ی ما(86) سوال 4 هم تمرین گراف سال 85 !!!

اگر مرحله 2 قبول شید 100% یک امتحان با این شکل خواهید دید !

مساله ها این جوری شماره دارند و نمرشون هم جلوش نوشته شده !


2 تا سوال خوب

به نام اول آموزگار             كه اول درسش عشق بود

سلام ملت چطورين، خوبين؟ اي بابا همچنان كه همتون زنده‌ايد! خوب چه خبرا؟ چه ميكنيد؟ خوشيد؟ سلامتيد؟ منم هي، بد نيستم، همچنان غرق الافي!

- متاسفانه - وبلاگمون داره پيش ميره به سمت علمي شدن كه البته خدارا شكر هنوز با اين نويسندگان شازي كه داره جاي نگراني وجود نداره، براي همين واسه اينكه لااقل از اين افشين كم نيارم گفتم بيام 2 تا سوال بدم، البته اينا مال بعضي از امتحان‌هاي ceoi بوده كه روشون الگوريتم BTM2 اجرا شده. براي همين يه دفعه ممكنه راه حل‌هايي آسون‌تر از اون چيزي كه تو ذهنمه داشته باشن و بعبارتي سوال سوت بشه. اما در هر صورت سوال‌هاي خوبين و جدا اونقدر قشنگ هستند كه كاملا پتانسيلشو دارن شبيهشون توي مرحله دوم بياد. در مورد اينكه حلشون رو بذاريم يا نه هنوز بحثش نشده، ولي احتمالا حلشون رو خواهم گذاشت. در مورد اينكه بچه‌ها حل كنند و واسمون ميل بزنن تا ما تصحيحشون كنيم هم هنوز تصميمي گرفته نشده. ا راستي يادم رفته بود ممكنه بعضي از افراد كوته‌فكر -كه اميدوارم ما از اين بازديدكننده‌ها نداشته باشيم- ندونن BTM2 چيه. محض اطلاعشون بگم BTM2 مخفف "بچپونش تو مرحله 2" هست. كه به شخصه معتقدم تعداد(شايد اندكي) از سوال‌هاي مرحله 2 و بسياري از سوالهاي مرحله 3 توسط همين الگوريتم BTM2 ويا BTM2++ = BTM3 ساخته شدن. در هر صورت اين هم سوال‌ها:

1) n عدد طبيعي روي يك خط چيده شده‌اند. با نام‌هاي a1 تا an. حالا ما يك حركت مجاز داريم و آن اينست كه يك i بين 1 تا كمتر از n در نظر بگيريم و ai و a i+1 را حذف كرده به جاش ai - ai+1 رو ميذاريم يعني ميشه n-1 عدد. حالا هي اين كار رو تكرار ميكنيم تا بشه 1 عدد. مثلا يك نمونه براي n=4 اينگونه عمل ميكنه:

1 12 4 9          --2-->         1 8 9         --2-->         1 -1         --1-->       2

حالا فرض كنيد در حالت خاصي از سوال داشته باشيم ai=2^i يعني اعداد اوليمون (الزامي براي رعايت اين شرط در ادامه‌ي مراحل وجود ندارد) 2 و 4 و 8 و 16 و ... است. سوال اينه كه ما در آخر كه فقط يك عدد مي ماند، چند حالت مختلف براي آن عدد وجود دارد؟(در حالت كلي سوال اينه كه حداكثر چند عدد مختلف وجود دارد به ازاي هر اعداد ابتدايي)

2) n پله با شماره‌هاي 1 تا n جلوي دروازه‌ي شهر الموت قرار دارد.(دروازه در پله‌ي n ام است) تعدادي متناهي سرباز روي اين پله‌ها ايستاده‌اند(در پله‌ي iام ai سرباز). اين سرباز‌ها كه مال چنگيزخان هستند، ميخوان بريزن و الموت رو تصرف كنند. شهردار الموت كه آدم صلح طلبي(بي بخاري) هست، واسه‌ي اينكه كشتار زيادي نشه مياد پيشنهاد يه بازي ميده و چنگيزخان هم كه ميبينه بازي شازي هست، قبول ميكنه. بازي اينجوريه كه هر مرحله چنگيزخان همه‌ي سربازهاش رو به دو دسته (نه الزاما مساوي و نه الزاما ناتهي) تقسيم ميكنه، شهردار يكي از دسته‌ها رو انتخاب ميكنه و اون دسته بر ميگردن مغلستان واسه دوره‌ي طلا(كه درحقيقت دودر ميشن)، اما اون دسته‌ي باقيمونده هركدوم يك پله ميان بالا. و بازي همينجور ادامه پيدا ميكنه. حالا اگه حداقل يك سرباز برسه به دروازه‌ي الموت(پله‌ي nام) شهردار، الموت رو تسليم ميكنه، اما اگر همه‌ي سربازها برگشتن... خوب معلومه ديگه چنگيزخان از دنيا سوت ميشه...

نكته اينجان كه شهردار الموت خيلي باهوشه و اگه بتونه چنگيزخان رو شكست بده، شكستش ميده. اما از بدشانسي چنگيزخان هم يكي از بروبچ المپياد كامپيوتري اون زمان رو كه دوروبره الموت الاف بوده گرفته و در نتيجه چگيزخان هم بهترين بازيش رو ميكنه. و خوب چون ميدونيم الموت تصرف شده، حالا سوال اينه كه شرط اگر و فقط اگر براي اينكه چنگيزخان برده چيه؟(مسلما بر اساس ai ها)

البته توجه كنيد كه وقتي اون بنده خداي الاف رو ميگيرن به هيچوجه حاضر به همكاري نميشه(عرق ملي) اما چنگيزخان نامرد با وعده‌ي يه لبتاپ اونو فريب ميده و تازه بعد از فتح الموت بهش لبتاپ كه نميده هيچ، اونو ميكشه و بعدها وقتي كه ميخوان چنگيزخان رو بكشن، با لباس اون بيچاره خودش رو ميزنه جاي رئيس كميته‌ي كامپيوتر و فرار ميكنه.

بطور مثال اگر توي پله‌ي n-1ام 1 نفر و توي پله‌ي n-2ام 2 نفر ايستاده باشن، اونوقت چنگيزخان افراد پله‌ي n-2ام رو ميكنه يه دسته و اون يكي سرباز رو هم ميكنه يه دسته. حالا شهردار مجبوره اون دسته‌ي نفر توي پله‌ي n-1ام رو حذف كنه و در مرحله‌ي بعدي چنگيزخان 2 نفر در پله‌ي n-1ام خواهد داشت، كه با تقسيم اونها به 2 دسته خواهد برد.

 

خوب اين هم سوالاي من. خداييش قشنگن. راستي چون من از همه كمتر كار گرافيكي بلدم، قرار شده من قالب و اين سوسوليها رو جور كنم، گفتم كه اگه پيشنهادي چيزي بديد ممنون ميشم.

خوب ديگه زياد از وقت همچون طلايم گرفته شد، كسي كاري چيزي نداره؟ پس فعلا

يا حق