আসুন এক অন্যরকম ভূতের রাজ্যে পা বাড়াই -২

এই পোস্ট শুরু করার পূর্বে তার প্রথম পর্বটি পড়ে আসার অনুরোধ রইলো

তাহলে শুরু করা যাক দ্বিতীয় পর্ব ।

এসিএম(ACM) অনেক মজার যদি এসিএম(ACM) কে আপনি বন্ধু (বান্ধবীও বানাতে পারেন তবে বাসায় যেন না জানে) বানাতে পারেন। প্রথম দিকে অনেকে হাও মাও করে শুরু করে কিন্তু কিছু দিন পর তাদেরকে আর এসিএম(ACM) ক্লাসে খুঁজে পাওয়া যায় না।আমাদের এসিএম(ACM) ক্লাস এর প্রথমদিন ছিল বড়ভাইদের  সাথে পরিচয় পর্ব যারা আমাদের ক্লাস নিবেন । সেই দিন জান(জানে আলম জান) ভাই এসেছিলেন । আমি জানি না আর কারো ভাগ্য হবে কিনা তাকে এসিএম(ACM) ক্লাসে দেখার কিন্তু তিনি একটা কথা সেইদিন বলেছিলেন

যারা দ্বিধা দ্বন্দ্বে আছেন যে তাদের দ্বারা এসিএম(ACM) হবে কিনা তাহলে তারা যেন এসিএম(ACM) করা ছেড়ে দেয়। তাদের দ্বারা এসিএম(ACM) হবে না।

কি কথাটা শুনে নিরাশ হয়ে গেলেন ? আমারও কেমন জানি লেগেছিল । কিন্তু কিছুক্ষন ভাবার পর বুঝা গেল যে কথা ছিল নিরাশ করার জন্যে না। কথাটার মধ্যে ছিল অন্য কিছু যার আসল কথাটা ছিল

দুর্বল বা অশান্ত মন নিয়ে কিছু করতে গেলে কখনই সাফল্য পাবেন না। তাই মনকে আগে শান্ত আর শক্ত করুন তাহলে কঠিন কাজকেও খুব সহজে করতে পারবেন

এই কথাগুলো কেন বললাম ?

কারন আজকের টপিক এসিএম(ACM) করতে গেলে আপনার কোড যখন সাবমিট করবেন তখন কি ধরনের জবাব আপনি পেতে পারেন জাজগুলো থেকে ।

Accepted [AC] :

এই শব্দটি আমাদের জন্যে অমৃত স্বরুপ। আপনাদের কাছেও হবে । এই শব্দটি শোনা বা দেখার জন্যেই এত যুদ্ধ । যতক্ষণ এই শব্দটি না শুনবেন বা দেখবেন ততক্ষণ ধরে নিবেন যে আপনার কোডে প্রবলেম আছে অর্থাৎ আপনার কোড হয়নি(সহজ বাংলা ভাষায় যদি বলি)। যখন এসি(AC) পাবেন তখন বুঝে যাবেন যে আপনার কোডটি সঠিক ভাবে হয়েছে।

আহা! মধু! মধু!

Wrong Answer[WA]:

এই শব্দটি হচ্ছে আপনার সব চেয়ে বড় বন্ধু ।

কারন

নিন্দুকেরে বাসি আমি সবার চেয়ে ভালো
যুগ জনমের বন্ধু আমার আঁধার ঘরের আলো।

মাঝে মাঝে কবি হওয়া দোষের কিছু না। যাই হোক এই জবাবের মানে হচ্ছে আপনার জমা দেয়া কোড থেকে যে অউটপুট  উৎপন্ন হচ্ছে সেগুলো সিস্টেমের অউটপুটের সাথে মিলছে না।অনেক সময় আপনার অউটপুট সঠিক কিন্তু অউটপুটের ধরন ঠিক নেই সেই জন্যেও ওয়া(WA) দিতে পারে।আবার ধরুন এক্সট্রা “\n” দিয়ে ফেলেছেন যদিও সমস্যার বর্ণনাতে চাওয়া হয়নি তখনও ওয়া(WA) দিবে। ওয়া(WA) যখন বার বার পাবেন হতাশ হবেন না।

মনে রাখবেন

একটি ওয়া(WA) কখনই সারাজীবনের কান্না হতে পারে না।

যখন ওয়া(WA) পাবেন তখনি আপনার কোড গভীরভাবে চেক করা শুরু করবেন।ফরম্যাট যদি ঠিক থাকে  তাহলে বুঝে নিবেন যে আপনার লজিকে প্রবলেম আছে। ইনপুট যেভাবে থাকুক না আপনার চিন্তা থাকবে সব সময় অউটপুটকে ঘিরে।অনেক সময় দেখা যায় বার বার ওয়া(WA) পেয়ে হতাশ হয়ে এসিএম(ACM) ছেড়ে দিয়েছে অনেকে । এমনও অনেক সমস্যা আছে যেগুলো নিয়ে বড় বড় এসিএম(ACM) সমাধানকারীরা মাসের পর মাস চিন্তা করে সমাধান বের করেছেন।

ধৈর্যই সকল সুখের মূল

Run Time Error[RTE]:

এই শব্দটির নামেই তার মর্মার্থ অন্তর্নিহিত রয়েছে।আপনার কোড যখন সিস্টেমে রান করতে যায় এবং ক্রাশ খায় (কিউট আপু বা হ্যান্ডসাম ভাইয়াদের উপরে খাওয়া ক্রাশের কথা বলছি না)  তখনি আরটিই(RTE) দেয়।ধরুন আপনি অ্যারের সাইজ  ১০০ নিয়ে খুব নিশ্চিন্তে কোড ঢুকিয়ে দিলেন সিস্টেমের মাথায় কিন্তু সিস্টেম এসি(AC) তো দিচ্ছে না  বরং তার বদলে অন্য কিছু দিল। ব্যাস তখনি আপনার মাথাটা দিল নষ্ট করে এবং সহ্য না করতে পেরে এইবার বলেই ফেললেন

এসিএম(ACM) আমার সাথে এমন করতে পারল ? ছিঃ! এই ছিল এসিএম(ACM) এর মনে  ?  যাহ ! আর করবো না সমস্যার সমাধান

তখন না রেগে প্রবলেমটা আবার পড়ুন তারপর অ্যারের আর সাইজ বাড়িয়ে দিন। আবার দেখা যায় আপনি স্ক্যান(scanf) ব্যবহার করলেন কিন্তু & দিলেন না বা দিতে ভুলে গেলেন তখনও দিবে। মোট কথা সিস্টেম সঠিকভাবে আপনার কোড চালাতে না পারলে আরটিই(RTE) দিবে। আরও অনেক কারনে দিতে পারে কিন্তু তা পুরোপুরি নির্ভর করবে আপনার কোডের উপরে।

রেগে গেলেন তো হেরে গেলেন

Time Limit Exceeded[TLE]:

এই শব্দটি যখন দেখবেন তখন বুঝে নিবেন যে আপনার কোড অনেক ধীর গতিতে কাজ করছে বড় বড় ভ্যালুর সাপেক্ষে এবং কিছু কিছু ভ্যালুর জন্যে আপনার কোড সিস্টেমকে ঘুম পারিয়ে দিতে চায় অনন্তকালের জন্যে এবং তখনি সিস্টেম টিএলই(TLE) দিবে।

কিছুক্ষণের বিরতি

এই বিরতির সময়ে যদি গল্প নিয়ে চিন্তা করা যাক তাহলে। এমন হতে পারে গল্পটি যে আপনার কোড নিজেকে সিস্টেমের চেয়েও অনেক বড় জ্ঞানী ভাবে তখন সিস্টেম রেগে গিয়ে বলল চল দৌড় প্রতিযোগিতা করি।তখন দুধ এর দুধ আর পানির পানি হয়ে যাবে।যেই ভাবা সেই কাজ তারা দৌড় প্রতিযোগিতা শুরু করে দিল।প্রথমে আপনার কোড অনেক দ্রুত দৌড়াতে লাগল আর সিস্টেম অনেক আস্তে আস্তে । কিছুক্ষণ দৌড়ানের পর আপনার কোড ভাবল যে সিস্টেমের আসতে মেলা দেরি এই ফাকে একটু ঘুমিয়ে নিলে মন্দ হয় না।সিস্টেম এসে দেখল আপনার কোড ঘুমাচ্ছে কিন্তু সিস্টেম তার দৌড়ানো বন্ধ করল নাএবং অবশেষে সিস্টেম দৌড় প্রতিযোগিতাটি জিতে গেল।  চোখ খুলেই আপনার কোড দেখল যে সিস্টেম জিতে গেছে আর হারার জন্যে আপনাকে দিল  টিএলই(TLE) । আসলে এমন কিছুই না পরতে পরতে হইত ঘুমিয়ে পরছিলেন তাই একটু মজা করলাম । এতো বক বক করার জন্যে আপনি বলতেই পারেন আরে রাখুন মিয়া তোমার গল্প আমার কোড এখানে এসি(AC) হচ্ছে না আর তুমি আছো গল্প নিয়ে !!

প্রতিটা সমস্যার মধ্যে সময়ের পরিধি দেয়া থাকে । আপনি যখন কোড করবেন তখনি আপনাকে সময়ের পরিধি নিয়ে বিবেচনা করতে হবে । সেখানে যে পরিধি দেয়া থাকে সে সময়ের মধ্যে আপনার কোড যেন সিস্টেমকে তার কাঙ্ক্ষিত অউটপুট দিয়ে  সন্তুষ্ট করতে পারে,তা না হলে বুঝতেই পারছেন কি হতে পারে ?

পালাবি কোথায় !

Compilation Error[CE]:

প্রতিটা সিস্টেমে কম্পাইলার সেট করা থাকে যেটি কম্পাইল করে চেক করে দেখে নেয় যে আপনার কোডে কোথাও ভুল আছে কিনা এবং কম্পাইল করার সময় যদি কোন ভুল পায় তাহলে আর দেরি না করে সিই(CE) দিয়ে দিবে।কম্পাইলার কিন্তু কোড এর লজিকেল ভুল ধরতে পারেনা । এর রাজ্য শুধু ফিজিক্যাল ভুল নিয়ে । আপনি যদি এমন কোন ফাংশন ব্যবহার করছেন যেটি এএনএসআই(ANSI) স্ট্যান্ডার্ড না তাহলে সিই(CE) খাবেন । এএনএসআই(ANSI) কি সেটা একটু কষ্ট করে গুগল চাচ্চুর কাছ থেকে জিজ্ঞাসা করে নিন । এখানে একটি বাড়তি সুবিধা রয়েছে এবং তা হচ্ছে কি কারনে সিই(CE) দিচ্ছে তা উল্লেখ করে দিবে ।

Presentation Error[PE]:

এই শব্দটি তখনি দেখাবে যখন আপনার সব অউটপুট ঠিক আছে কিন্তু অউটপুটের ফরম্যাট ঠিক নেই  ।

এই হতচ্ছাড়া ! একটু আগে না বললি এর জন্যে ওয়া(WA) দিবে কিন্তু এখন আবার বলছিস পিই(PE) দিবে। ওই! তুই পেয়েছিস কি ? আমাদের বোকা বানাতে চাস ?

না ভাই বোকা বানাব কেন ? মুলত ফরম্যাট ঠিক না থাকলে পিই(PE) দেয় কিন্তু কিছু সমস্যায় সরাসরি বলা থাকে যে ফরম্যাট ঠিক থাকতে হবে, ভুল ফরম্যাট এর জন্যে ওয়া(WA) দিতে পারে । তাই আপনাকে সবখানেই ফরম্যাট ঠিক রাখতে হবে ।

আমার এখনও মনে আছে Light Online Judge এর একটি সমস্যা ছিল যার নাম  “ইফতার পার্টি”। সেই সমস্যাটির জন্যে আমার লেখা সমাধানে সব ঠিক ছিল কিন্তু একটা “\n” দিতে ভুলে গিয়েছিলাম যার কারনে ওয়া(WA) দিচ্ছিল। তখন আমিতো চুল ছিঁড়া শুরু করে দিয়েছিলাম কিন্তু জান ভাই আসে বলল তুমি “\n” দাও নাই এবং সাথে এটাও বলল আমার ক্লাসে থাকলে তুমি চড় না খেয়ে বাড়ি ফিরতে পারতা না। তখন আমি কষ্ট পেয়েছিলাম এই ভেবে যে কেন জান ভাই এর ক্লাসে ছিলাম না ? তাহলে এরকম গোটাকয়েক ৫ -৬ চড় খেয়ে হয়ত এত দিনে প্রোগ্রামিংটা ভাল মত রপ্ত করে ফেলতে পারতাম । এই ভুলের কারনে এক কন্টেস্টে আমাদের টিম আমার কারনে এই পিই(PE) হজম করেছিল কিন্তু সেই কন্টেস্টে আমরা আমাদের বড় ভাই এর টিম এর আগে ছিলাম রাঙ্কিং এ যার খুশিতে বাকি দুইজন ভুলে গেছিল আমার এই ভুলের কথা না হলে হয়ত তাদের হাতের ধলাই খাওয়া থেকে রক্ষে ছিল না।

Memory Limit Exceeded[MLE]: 

এটি দিবে যখন আপনার অউটপুটের আকার সমস্যায় উল্লেখ করা আকারের চেয়ে বেশি হবে। লাইভ কন্টেস্টের সময় সাধারণত এমএলই(MLE) দেখায় না তখন সিস্টেম থাকে পিসি যার কারনে আকার নিয়ে ঝামেলা হয় না ।

Output Limit Exceeded[OLE]:

সিস্টেম যতগুলো অউটপুট আপনার কোড থেকে আশা করে কিন্তু তার চেয়ে বেশি পরিমাণ অউটপুট আপনার কোড যদি সিস্টেমকে সরবরাহ করতে থাকে তখন ওএলই(OLE) দিবে।

Restricted Function[RF]: 

সাধারন নিষিদ্ধ ফাংশন যদি আপনার কোডে থাকে তখন আরএফ(RF) দিবে। যেমনঃFreopen ।

এইগুলো হচ্ছে সিস্টেম থেকে প্রদর্শনকৃত বার্তাসমূহ যখন  আপনি আপনার  কোড সিস্টেমে জমা দিবেন। এসি(AC) আসলে যে পরিমাণ খুশি অনুভূত হয়, ওয়া(WA) আসলে সমপরিমাণ কষ্ট অনুভূত হয় কিন্তু তাই বলে এসিএম(ACM) ছেড়ে চলে যাবেন এমন হলে আপনাদের এসিএম(ACM) এ আসার প্রয়োজন নেই।

তাদের জন্যে আমি জান ভাই কথাটাই আবার উল্লেখ করব

যারা দ্বিধা দ্বন্দ্বে আছেন যে তাদের দ্বারা এসিএম(ACM) হবে কিনা তাহলে তারা যেন এসিএম(ACM) করা ছেড়ে দেয়। তাদের দ্বারা এসিএম(ACM) হবে না।

সুতরাং এসি(AC) পেলেই খুশিতে আত্মহারা হওয়ার কিছু নেই বা ওয়া(WA) পেলে দুঃখের সাগরে ডুবে যাওয়ার কিছু নেই । আমি মনে করি এসি(AC) পেলেই কষ্ট পাওয়া উচিত আর ওয়া(WA) পেলে খুশি পাওয়া উচিত কারন যখন আপনি ওয়া(WA) পাবেন তখন আপনার জন্যে নতুন কিছু শিখার দরজা খুলে যায়। আপনি অন্য লজিক নিয়ে ভাবা শুরু করবেন,কিভাবে সমাধান করা যায় তার জন্যে অনলাইনে খোঁজাখুঁজি করবেন । এই কথাগুলো এখন পুরোপুরি বিশ্বাস হবে না, যখন এসিএম(ACM)করবেন তখন বিশ্বাস হবে আশা করি । কেমন লাগছে ভুতের রাজ্যে ? যখন এই রাজ্যের মায়ায় পুরোপুরি আচ্ছন্ন হয়ে যাবেন তখন এর আসল মজা পাবেন।

আজকে এখানেই শেষ কিন্তু পরের পর্বে বাকিটুকু থাকবে ।

শেষ পর্ব

বিঃ দ্রঃ

কোন বানান,উক্তি,চিন্তা ইত্যাদি ভুল লিখে ফেললে দয়া করে কমেন্টে সঠিক অংশগুলো উল্লেখ করে দিবেন কারন মানুষ মাত্রই ভুল।


লেখকের অনুমতি ব্যাতিত প্রোগ্রামিং এর চাক থেকে লেখা অনুলিপন করা আইনত দণ্ডনীয়।


জানে আলম জান যিনি একমাত্র বাংলাদেশী যার UVA ONLINE JUDGE  এ ২০০০+ সমাধান আছে । সর্বশেষ তাঁর ২৪০০+ solve ছিল।  উনি আমাদের এআইইউবি এর ফ্যাকাল্টি ছিলেন । উনার ক্লাস শুধু আমাদের বড় ভাইরা পেয়েছিল আর আমাদের টিম  একবার পেয়েছিল শুধু  কন্টেস্ট শেষে  সমাধান দেয়ার সময় । উনি শুধু এসিএম(ACM) এর  ক্লাস নিতেন ।

 

৮৯১ বার মোট দেখা হয়েছে ১ বার আজ দেখা হয়েছে

মন্তব্য সমূহ

ACM GHOST