মিজান এই সেমিস্টারে ডেটা স্ট্রাকচার কোর্স করছে। এই কোর্সে হ্যাশ টেবিল অধ্যায় পড়ার সময় সে নিজে একটি হ্যাশ ফাংশন লেখার চিন্তা করল। ফাংশনটিতে একটি স্ট্রিং ইনপুট নেওয়া হবে এবং ফাংশনটি সেই স্ট্রিংয়ের ওপর ভিত্তি করে একটি হ্যাশ কি (ইন্টিজার) রিটার্ন করবে। মিজান সেই ফাংশনটির জন্য চিন্তা করল যে, হ্যাশ কি বের করার জন্য ইনপুট স্ট্রিংয়ের প্রতিটি ক্যারেক্টারের আসকি মানের গুণফল রিটার্ন করবে। তবে গুণফল অনেক বড় হয়ে যেতে পারে, তাই সে সিদ্ধান্ত নিল যে গুণফলকে 97 দিয়ে মড করে দিবে (অর্থাৎ 97 দিয়ে ভাগ করে ভাগশেষ রিটার্ন করবে)। এখন দুটি স্ট্রিংয়ের ক্ষেত্রে যদি একই হ্যাশ কি হয়, তখন একটু মুশকিল হয়ে যায়, আর সেই অবস্থাকে বলে কলিশন (Collision)।
দুটি স্ট্রিং দেওয়া হলে মিজানের হ্যাশিং পদ্ধতিতে কলিশন হবে কী না, সেটি তোমার একটি প্রোগ্রাম লিখে বের করতে হবে।
প্রথমে একটি সংখ্যা T দেওয়া থাকবে। তারপর T সংখ্যক লাইনের প্রতি লাইনে দুটি স্ট্রিং থাকবে, স্ট্রিংদুটি একটি স্পেস ক্যারেক্টার দিয়ে আলাদা করা থাকবে। কোনো স্ট্রিংয়ে 20টির বেশি ক্যারেক্টার থাকবে না, আর স্ট্রিংয়ে কেবল ইংরেজি বর্ণমালার অক্ষরগুলো থাকবে।
প্রতিজোড়া স্ট্রিংয়ের জন্য কলিশন হলে YES, আর কলিশন না হলে NO প্রিন্ট করতে হবে।
2
abcd efgh
AbcD DAbc
NO
YES
96699 টি সাবমিশন
71 টি প্রোগ্রামিং সমস্যা
6300 জন ইউজার