প্রোগ্রামিং প্রতিযোগিতায় অনেক সময় খুব সহজ সমস্যা সমাধান করতেই অনেকের ঘাম ছুটে যায়। আপাত দৃষ্টিতে সঠিক মনে হলেও জাজ তা গ্রহণ করে না। বিভিন্ন ধরনের এরর দেখায় যার অর্থ বুঝতেই আমাদের অনেকের মূল্যবান সময় চলে যায়। প্রতিযোগিতায় সময় নির্ধারিত থাকে তাই যে যত তাড়াতাড়ি তার প্রোগ্রামের ভুল ধরতে পারে এবং তা সমাধান করতে পারে সেই বিজয়ী হয়। তাই চল জেনে নেওয়া জাক অনলাইন জাজ এর দেখানো নানা এরর এবং এগুলোর সমাধান ।
১। রং আনসার ( Wrong Answer) :
অনলাইন বিচারকে সাবমিট করা সমাধানের আউটপুটের সাথে যদি প্রবলেম দাতার আউটপুট যদি না মিলে তাহলে এই ধরনের উত্তর আসে।
২। টাইম লিমিট এক্সিডেড (Time Limit Exceeded) :
সাধারনত প্রতিটি প্রবলেমের জন্য একটি নির্দিষ্ট সময়সীমা দেওয়া থাকে। এটা প্রবলেমটি সমাধান করার জন্য নির্ধারিত সময় নয়, বরং কম্পাইলার প্রোগ্রামটি রান করতে কতক্ষণ সময় সর্বচ্চ পাবে তা নির্দেশ করে।
অর্থাৎ, সমাধানটি এমন হতে হবে যেন, ওই নির্দিষ্ট সময়ের মধ্যেই প্রোগ্রামটি ইনপুট নিয়ে প্রয়োজনীয় আউটপুট তৈরি করবে। যদি প্রোগ্রামটি এর চেয়ে বেশি সময় নেয় তাহলে অনলাইন জাজ Time Limit Exceeded দেখাবে। এক্ষেত্রে বুঝতে হবে যে অ্যালগরিদম ব্যবহার করা হয়েছে তার চেয়ে দ্রুত কোন অ্যালগরিদম ব্যবহার করে প্রবলেমটি সমাধান করতে হবে।
প্রোগ্রাম রান টাইম কমানোর কিছু পদ্ধতি
১। রিকারশন (Recursion Function) দরকার না হলে ব্যবহার না করা।
২। C++ -এ ইনপুত/আউটপুটের জন্য cin>> এবং cout<< এর জায়গায় printf() এবং scanf() ব্যবহার করা।
৩। ক্যারেক্টার লিমিট অতিক্রম না করলে int ভ্যারিয়েবেল এর জায়গায় char ব্যবহার করা।
৩। মেমোরি লিমিট এক্সিডেড ( Memory Limit Exceeded) :
কিছু কিছু সমস্যার ক্ষেত্রে সমাধানটি মেমোরি বা RAM-এ কত বাইট জায়গা ব্যবহার করতে পারবে তার ওপরেও একটা সীমা বেঁধে দেওয়া হয়। যদি সমাধানটি বেসি মেমোরি ব্যবহার করে তখন সাধারণত এই ধরনের ফলাফল আসে।
সমাধানের জন্য অন্য সরল কোন অ্যালগোরিদম ব্যবহার করতে হবে অথবা বর্তমান অ্যালগোরিদমটিকে আর সরল করতে হবে ।
৪। প্রেজেন্টেশান এরর ( Presentation Error) :
অনলাইন জাজ কিন্তু খুব নির্দয় । প্রশ্নে দেওয়া স্যাম্পলে আউটপুট এর সাথে যদি একটি অক্ষর এমনকি দুটি শব্দ অথবা লাইন এর মধ্যে দূরত্ব কম বেশি হলেও আনসার ভুল প্রদর্শন করবে। Presentation Error এর অর্থ হচ্ছে সমাধানের উত্তরগুলো সঠিক হয়েছে, তবে উদাহরণের ঠিক যেই ফরম্যাট বা প্যাটার্নে আউটপুট দিতে বলা হয়েছে, তা অনুসরণ করা হয়নি। অর্থাৎ, কথাও হয়ত প্রয়োজনের চেয়ে বেশি বা কম স্পেস, নিউ-লাইন (‘\n’) ইত্যাদি ক্যারেক্টার প্রিন্ট করা হয়েছে।
৫। কম্পাইলেশন এরর ( Compilation Error):
যদি সমাধানটি অনলাইন জাজ সঠিকভাবে কম্পাইল করতে না পারে, তখন এধরনের এরর দেওয়া হয় । এরকমের এরর পেলে বুঝতে হবে, কোডের কথাও কোনো ভুল আছে । যেমন ঃ সেমিসেমিকোলন-কমা ঠিক মতো না দেওয়া বা বিভিন্ন রকমের বন্ধনী () , {}, [] সঠিকভাবে বন্ধ না করা, ভ্যারিয়েবল ডিক্লেয়ার না করেই ব্যবহার ইত্যাদি ।
এধরনের ভুলের অনেকগুলেকে Syntax Error নামেও বলা হয়ে থাকে। বিভিন্ন কম্পাইলার যেমনঃ CodeBlocks এ এধরনের ভুল করলে কোন লাইনে ভুল হয়েছে তা নির্দেশ করে। এটি থেকে প্রগ্রামকে ভুলমুক্ত করা যায় ।
৬ । রানটাইম এরর ( Runtime Error ) :
যদি সাবমিট করা সমাধান চলতে গিয়ে কোন এরর বা এক্সেপশন তৈরি করে বন্ধ হয়ে যায় তাহলে এধরনের ফলাফল দেওয়া হয় ।
কখনো কখনো অ্যারের ইনডেক্স ব্যবহারে ভুল বা ভুল অ্যাড্রেসে পয়েন্টার ব্যবহার করলে করলে এই ধরনের এরর হতে পারে। এধরনের এরর দেখালে অ্যারে , পয়েন্টার বা লুপ সঠিকভাবে লেখা হয়েছে কিনা তা চেক করা উচিত ।
৭। রেস্ট্রিক্টেড ফাংশন (Restricted Function):
অনেক ক্ষেত্রে অনলাইন জাজে বিশেষ কিছু ফাংশন ব্যবহারে বাধা থাকে । সাবমিটকৃত সমাধান যদি ওইসব ফাংশন ব্যবহার করে থাকে তাহলে এধরনের ফলাফল পাওয়া যায়।
এক্ষেত্রে প্রতিযোগিতার আগেই নির্ধারিত জাজ সম্বন্ধে তথ্য যোগার করে রাখলে সুবিধা হয় এবং এধনরের ভুল এড়ানো যায়।
এসব ভুল ছাড়াও জাজ ভেদে নানা এরর দেখা যায়। একটু সচেতনতা অবলম্বন করলেই এগুলো থেকে বাছা সম্ভব।
সমাধানটি সঠিক হলে জাজ অ্যাক্সপ্টেড ( Accepted) দেখাবে ।
**আশা করি পোস্টটি তোমাদের জন্য উপকারী হয়েছে। কোন ভুল তথ্য থাকলে তার জন্য আমি ক্ষমাপ্রার্থী। কোন উপদেশ অথবা পোস্টটির মধ্যে কোন ভুল থাকলে তা Comment section এ উল্লেখ করার অনুরোধ রইল। যত তাড়াতাড়ি সম্বভ বার রেপ্লাই দেওয়া হবে।
🙂
Shajejul112
LikeLike