ACM Solution Manual


Today I received some questions from a student in Ahram Canadian University about ACM and how he can join and prepare himself so as a try to answer all these questions, I will write this blog in Q&A style. I hope that all these answers could help people trying to know more about ACM and problem solving in general.

I wrote before a blog about some resources that could help students looking to participate in problem solving contests like ACM, Top Coder and other programming contests so I will not repeat myself and you can check it of course before reading this blog.

So let’s start clip_image001

How could we initiate an ACM branch in our university?

Like other activities (IEEE, MSP Program, GSA Program), ACM has some rules that you need to follow until you would be able to initiate an ACM Student Chapter inside your university.

I guess you could contact with Eng. Mohamed Fouad as he is the one who could help you with this stuff as far as I know especially if you want the chapter to be an official one. However, let us say that having a chapter inside your university is a good step that would help you organize trainings and contests and raise the awareness of students of computer science and problem solving.

Should we initiate a branch inside university before being able to participate in ACM different Competitions?

I guess the answer here is NO. You can participate with any two students from the same university as long as you would be able to cover the cost of registration and transportation.

The coach can also be one of these three students.

To know more about ACM rules, check this website

How can I get the needed training to prepare myself for the competition?

Thanks to god, now many available resources should help you in your journey if you are interested in improving these skills.

1- Arabic Algorithm Series : As its creator describes it, it is “An Arabic Series in Algorithms and Data Structures from competitive programming perspective with emphasize over thinking skills.”

Dozens of videos have been prepared until now and there are more coming I guess.

2- Competitive Programming Book : In my opinion, this book covers all what you need to become a good problem solver. If we added it to the first resource, I think this would be enough at least for the start.

Download it from here if you could not buy it.

3- Offline Trainings: As I mentioned before you could organize a training inside your university if you have a branch. In addition, some trainings are usually held in universities that have branches and always participate in the different programming competitions like Alexandria, GUC and Cairo University. You should try to follow up and communicate with them to be able to attend.

When and where would the next competition be held?

I guess you can get this info through the official Facebook pages or from the official website of ACM ACPC


Ahmed Kamal


How to register in ACM ?


1- One of the 3 team members will register the team from this link;jsessionid=qztfetiRqTZeSshTzZ+6jg23.undefined

2- Register an account for yourself and complete your own profile (this is important)

Area Of Study :In ex :  “Engineering”

Degree Pursued :In ex : ” Bachelor” 

3- Create a team and choose “The 2012 Egyptian Collegiate Programming Contest >  CAIRO”

3- Ask the other two members to create account  too and then you can add them to the team through “Add Team member”.

4- Assign team members to your team through searching for them using their names. Be sure that the e-mail of him/her is the same as the one he/she registered with to guarantee that he/she  is the right person.

5- Click on “Register Team” button.

6- Don’t forget to make sure that the registration of all the 3 member is completed.

Congratulation 🙂 You have registered your team successfully. Don’t forget to send me the names of the members of your team so I can finish you registration at  & your mail to contact you if there was any problem.


Best Wiches 🙂

Ahmed Kamal

Resources for ACM Competition


I was asked a lot of questions about how one can start learning how to prepare himself  to be able to participate in competitions like ACM. In fact I had the same question so I asked Ahmed Mohamed Kamel. as he was the student coach of the Egyptian team in IOI this year.

He said: “There are a lot of problems varying in difficulty from the very beginning (language newbies) to very advanced in algorithms and techniques.

1- To read articles I recommend wikipedia and TopCoder editorials, also Competitive Programming book (this book has everything about what you need). You can also benefit from our training site

2- To enter online contests and be ranked over the world, join,, and and practice on their problems. There are thousands of problems there.

I asked him do I need to master data structure before start solving the problems but he answered saying”I think there is no need for advanced data structures at the moment.. Just learn the basics and solve!”

I hope all of you can benefit from this post. Thanks 🙂

Ahmed Kamal

ACM Competition


في البداية لو حبينا نسأل نفسنا يا تري ايه الفرق بين جوجل من 5 سنين و النهاردة ؟ فكر كدا شوية .. هل الفرق في الشكل او في لغة البرمجة اللي بيستخدموها ؟

طيب ايه اللي خلي جوجل سيرش يتطور بالطريقة اللي وصلها النهاردة دي و ايه اللي يمنع اي حد انه يقدر بسهولة يعمل محرك بحث اقوي منه.

السر في حاجة زي كدا هي الالجورزم اللي بيشتغل بيه البحث , كل فترة الناس اللي شغالة هناك بتحاول تطور الالجورزم دا لانه هو اقوي حاجة عندهم.

عشان كدا لما بندور علي الوظائف في شركات زي جوجل , مايكروسوفت , اي بي ام او غيرها بنلاقي انهم دايما بيدوروا علي مبرمج قوي في Algorithms لان الفرق ما بين الكود اللي بيكتبه حد محترف و الكود اللي بيبكتبه حد عادي بيعتمد علي النقطة دي تحديدا و الا تخيل كدا لو البحث بيتم بكفاءة بس بتستني اربع دقايق عشان النتيجة تطلع 🙂 .

طيب احنا بقا اخبارنا ايه في الموضوع دا 🙂 .. عموما هو مش احنا بس اللي كدا تقدر تقول ان كتير من المبرمجين للاسف معندهمش مهارة عالية في الالجوريزمز والرياضيات و عشان كدا مش سهل تلاقي عندنا محرك بحث او موقع زي فيس يوك او كدا لان الحاجات دي شغالة بالجوريزمات قوية جدا و محتاجة النوعية دي من المبرمجين.

في العالم كله الشركات دايما بتدور علي النوع دا من المبرمجين عشان كدا في مسابقات كتيير بتتعمل علي مستوي العالم بين الطلبة و غير الطلبة برضه عشان الناس تتنافس علي حل المشكلات البرمجية دي بحلول متميزة من ناحية السرعة و الكفاءة.

Google Code Jam


IEEE Extreme

في الحقيقة المسابقات دي مشهورة جدا و في فرق من جامعات مصرية بتشترك فيها باستمرار و بتوصل للمراحل النهائية فيها كمان.

كمان في منها مسابقات بتبقي عن طريق الانترنت من خلال مواقع زي

و اللي حتلاحظه من المسابقات دي ان الاوائل فيها من مصر بيبقوا شغالين في شركات كبيرة زي جوجل و مايكروسوفت و غيرها و منهم احمد علي (الاول علي مصر) اللي شغال حاليا في جوجل .

في الملف دا احمد علي و بيشرح برضه شوية عن احد المسابقات دي

احنا بقالنا فترة بنحاول ندخل الموضوع دا عندنا هنا في الكلية بس الدنيا حلوة طبعا 🙂 بس الحمد لله لقينا طريقة كويسة نقدر نشترك من خلالها بحيث نبدأ نجهز فرق تشارك في المسابقة و تاخد تدريبات و تطور مهاراتها عشان تنافس و كدا

احنا محتاجين من كل حد مهتم بالموضوع دا انه يشارك في المسابقة المحلية اللي بتبقي في مصر ان شاء الله

بس لازم علي الاقل يكون عارف برمجة بس مش شرط يكون متميز في الالجوريزمات

لو عايز تعرف اكتر عن المسابقة من خلال اللنك دا

و عشان تعرف القواعد بتاعتها من خلال

و لو عايز تشارك في المسابقة

الناس لازم تسجل علي الاقصي قبل يوم السبت و الاسبقية للي يسجل الاول طبعا

  • محدش يقلق من معاد التسجيل المكتوب او معاد المسابقة لانه اتعدل برضه
  • يا ريت كل البيانات تكون كاملة  و كمان تبعت اميل بعد ما تسجل باسماء التيم علي
  • كل فريق بيبقي حوالي 3 من الطلبة و بيبقي فيه كوتش سواء واحد من التلاتة دول او حد من برا
  •  Coach دا ممكن يكون طالب عادي جدا فياريت اي حد من الفريق يبقي  Coach
  • هو ملوش مميزات الا انه بينظم موضوع الاتصالات و كدا Coach
  • الفرق اللي حتسجل في المرحلة دي هي اللي حنشتغل معاها في الفترة الجاية ان شاء الله

الاسئلة :

انا حضيف الاسئلة اللي حتوصلني و ححاول اجاوب عليها هنا

1- انا اللي حختار الفريق بتاعي و لا هما اللي حيختارونا ؟

لا في البداية بس احنا بنختار بعض بس بعد كدا الموضوع حيبقي فيه مسابقة و كدا و نختار الافضل فقط

2- ايه اللي حيحصل بعد ما نسجل ؟

احنا حنحاول نوفر سيشن او اكتر قبل المسابقة المحلية لانها قريبة جدا بس بعد ما تخلص حيبقي في تدريب اكبر للناس دي عشان يستعدوا للمسابقات اللي بعد كدا و حيبقي في تصفيات ما بينهم و هكذا

3- ازاي ممكن اسجل ؟

البوست دا حيشرحلك كل حاجة بالتفصيل

4- ايه لغات البرمجة اللي ممكن نستخدمها ؟

انت قدامك 3 اختيارات سي بلس بلس او جافا او سي

5- هي المسابقة دي تبع مين ؟

هو عامة الموضوع مش متعلق بمسابقة معينة ان شاء الله بس دي اقوي واحدة موجودة

ACM is like IEEE .. it is an worldwide organization
competition sponsered by IBM

6- هل ينفع يكون اي اعضاء الفريق (3 اعضاء) من خارج جامعة طنطا ؟

لا للاسف بالنسية لينا مش ينفع بس هو ممكن يشوف ايه النظام في جامعته

7- انا عايز اشوف اسئلة شبه الاسئلة اللي بتبقي في المسابقة اعمل ايه ؟

اسئلة ACM مشهورة و موجود علي الانترنت الاسئلة الخاصة بالسنين اللي فاتت كمان تجرب تشوف موقع زي TopCoder او UVA

لو عندك اي استفسارات ممكن تبعتها علي