C. Qpwoeirut And The City || Codeforces Round #809 (Div. 2)
প্রব্লেম স্টেট্মেন্টঃ সংক্ষেপে বলতে গেলে, একটি শহরে কিছু সংখ্যক বিল্ডিং আছে। বিল্ডিং গুলোর প্রত্যেকটি ফ্লরের হাইট সমান। একটি ব্লিডিং আরেকটি বিল্ডিং থেকে বড় হবে যদি, ফ্লোরের সংখ্যা বেশি হয়।যদি একটি বিল্ডিং তার নেইবার দুইটা বিল্ডিং(এডজেসেন্ট বিল্ডিং) থেকে বড় হয়ে তাহলে সেটাকে কুল বিল্ডিং বলা হবে।আমাদের কাজ হচ্ছে, ম্যাক্সিমাম কুল বিল্ডিং বানাতে মিনিমাম কস্ট কত হবে।
অবজারবেশনঃ বিল্ডিং এর সংখ্যা যদি বিজোড় হয়-
০ ১ ০ ১ ০ ১ ০ ( ১ রিপ্রেজেন্ট কুল বিল্ডিং)
এখানে যদি পজিশন দুই থেকে শুরু না করে অন্য কোন পজিশন থেকে শুরু করি তাহলে আমরা ম্যাক্সিমাম কুল বিল্ডিং পাবো না। সুতরাং আন্সার হবে জোড় ইন্ডেক্স গুলাকে কুল বানাতে যত কস্ট লাগবে সেটা।
বিল্ডিং এর সংখ্য জোড় হলে-
০ ১ ০ ১ ০ ১ ০ ১ (১ রিপ্রেজেন্ট কুল বিল্ডিং)
এখানে দেখা যাচ্ছে যদি পজিশন ২ থেকে শুরু না করে ৩ থেকে শুর করি তাহলেও কুল বিল্ডিং এর সংখ্যা ম্যাক্সিমাম ই থাকবে। সুতরাং অল্টারনেট ইন্ডেক্সিং এর সুযোগ আছে।
প্রসিডিউরঃ বিল্ডিং এর সংখ্যা জোড় হলে জাস্ট যোগ করে আন্সার প্রিন্ট করব। বিজোড় হলে লাস্ট ইন্ডেক্সের আগের ইন্ডেক্স থেকে শুরু করব।
ইন্ডেক্সটির ভ্যালু যোগ করব এবং তার আগের ইন্ডেক্স টির ভ্যালু বিয়োগ করব।
কোডঃ
POV: বুঝতে সমস্যা হলে,
বিল্ডিং এর সংখ্যা জোড় হলে-
ধরি, বিল্ডিং এর সংখ্যা ৮। সেক্ষেত্রে ইন্ডেক্স ৫ নিয়ে তখনি কাজ কতে পারবো যদ ইন্ডেক্সকে ৭ নেয়া হয়ে থাকে।একইভাবে, ৫ ইন্ডেক্স নেয়া হয়ে গেলেই ৩ ইন্ডেক্স নিয়ে কাজ করতে পারবো। কারণ ৭ নেয়া মানে ৬ বাদ দেয়া, ৫ নেয়া মানে ৪ বাদ দেয়া, ৩ নেয়া মানে ২ বাদ দেয়া।
Comments
Post a Comment