পোস্টটি পড়া হয়েছে 3,775 বার
UVa 10931 Parity Solution in Bengali

অনলাইন জাজ সিরিজ – ১২ (UVa 11479 – Is this the easiest problem?)

– “Is this the easiest problem?”
– “Yes! it is the easiest one!”

খুব সহজ আর সোজাসাপ্টা UVa এর প্রবলেমটা পড়ে ফেলো নিচের লিংক থেকেঃ

UVa – 11479 Is this the easiest problem?

নিশ্চয়ই বুঝে ফেলেছো প্রবলেমটা! প্রথমে টেস্ট কেসের নাম্বার দেয়া থাকবে। এরপর প্রতিটা টেস্ট কেসের জন্য ৩ টা করে পূর্ণ সংখ্যা (32 bit integer) ইনপুট দেয়া হবে। তোমাকে বলতে হবে এই তিনটা সংখ্যা দিয়ে কী ধরণের ত্রিভুজ গঠন করা যায়? ত্রিভুজটা সমবাহু, দ্বি-সমবাহু নাকি বিষমবাহু সেটা বলতে হবে। যদি কোনটাই না হয় সেক্ষেত্রে সেটা কোন ত্রিভুজই না! অর্থাৎ Invalid.

ফার্স্ট সেমিস্টারে থাকতে যখন সলভ করেছিলাম তখন আমার লজিক ছিলঃ

প্রথমে চেক করব ত্রিভুজটা Invalid কিনা? এটার সূত্র ছিল ত্রিভুজের যে কোন দুই বাহুর সমষ্টি তৃতীয় বাহুর থেকে বড়। (a+c<=b || a+b<=c || c+b<=a), এগুলোর যে কোন একটা সত্য হলে প্রিন্ট করবে Invalid. যদি ত্রিভুজটা invalid না হয় তাহলে সমবাহু, দ্বি-সমবাহু বা বিষমবাহু এই তিনটার কোন একটা ক্যাটাগরিতে পড়বে।

যদি a==b এবং b==c এবং c==a এই তিনটি শর্তই সত্য হয় তার মানে a, b, c তিনটি সংখ্যাই সমান। অর্থাৎ এটি হবেঃ Equilateral বা সমবাহু ত্রিভুজ।

তা না হয়ে যদি a==b অথবা b==c অথবা c==a এই তিনটি শর্তের কোন একটি সত্য হয়, অর্থাৎ যে কোন দুটি বাহুর মান সমান হয় তাহলে সেটা Isosceles বা দ্বি-সমবাহু ত্রিভুজ।

উপরের তিনটার (Invalid, Equilateral, Isosceles) কোন একটা ক্যাটাগরিতে না পড়লে কোন চিন্তা করা ছাড়াই বলে দেয়া যায় এটা এমন একটা ত্রিভুজ যার কোন দুটি বাহুই সমান না। বিষমবাহু ত্রিভুজ বা Scalene.

তাহলে a, b, c তিনটা int টাইপের ভ্যারিয়েবল নিয়ে উপরের শর্তগুলো দিয়ে কোডটা করে সাবমিট করে দাও। ব্যস WA (Wrong Answer)! অনলাইন জাজে একটা প্রোগ্রাম সাবমিট করা হলে কেন WA আসে? না জানা থাকলে জেনে নিতে পারো এখান থেকে।

Input সেকশনটা ভাল করে পড়লে দেখবে ৩২ বিটের তিনটি signed integer ইনপুট দেয়া হবে। ৩২ বিটের ইন্টিজারের কথা শুনলেই আমাদের মনে হয় এটা বুঝি int এর রেঞ্জের মধ্যেই এঁটে যাবে। আসলে তা না। int টাইপের সর্বোচ্চ সংখ্যাটা হচ্ছে 231-1. তাই যদি 32 bit integer সংখ্যা নিয়ে কাজ করতে হয় তাহলে অবশ্যই long int টাইপের ডেটা নিয়ে কাজ করতে হবে। সুতরাং এই কোডের a, b, c ভ্যারিয়েবলগুলোকে long int হিসেবে ডিক্লেয়ার করো। যার format specifier হচ্ছে %ld.

এবার সব ঠিকঠাক মত করে কোড সাবমিট করো। আশা করি Accepted হবেই!

হ্যাপি প্রবলেম সলভিং… 🙂