প্রথম সাবটাস্কের জন্য, সকল সাব-সিকোয়েন্স খুঁজে বের করুন। এই ক্ষেত্রে, সাব-সিকোয়েন্সগুলোর সংখ্যা হবে 2n। তারপরে প্রতিটি সাব-সিকোয়েন্স এর ল.সা.গু এবং গ.সা.গু ণির্ণয় করুন। যদি কোনও সাব-সিকোয়েন্স এর (ল.সা.গু - গ.সা.গু) k এর সমান হয়, তবে "YES" প্রিন্ট করুন, অন্যথায় "NO" প্রিন্ট করুন। সুতরাং, কমপ্লেক্সিটি হবে O(n * 2n)
দ্বিতীয় সাবটাস্কের জন্য, আপনাকে এই সমস্যার কিছু ণির্ণায়ক খেয়াল করতে হবে। যেহেতু, গ.সা.গু হলো অ্যারের কয়েকটি সংখ্যার ফ্যাক্টর, সেহেতু এটি a অ্যারের সর্বাধিক মানের চেয়ে বড় হতে পারে না। ধরি, সর্বাধিক মান m। সুতরাং, যদি উত্তরটি বিদ্যমান থাকে তবে আমরা নিশ্চিত যে ল.সা.গু মূলত 1 + k এবং m + k এর মধ্যে থাকবে, কারণ গ.সা.গু সর্বদা 1 এবং m এর মধ্যে রয়েছে। এখন, 1 + k থেকে m + k পর্যন্ত প্রতিটি মান v এর জন্য পরীক্ষা করে দেখুন এবং অ্যারে থেকে যে মান গুলি v - k দ্বারা বিভাজ্য এবং v কে বিভক্ত করতে পারে তা খুঁজে বের করার চেষ্টা করুন। যেহেতু, সেই সকল মান v - k দ্বারা বিভক্ত হতে পারে তাহলে, তাদের গ.সা.গু মূলত v - k এর চেয়ে বেশি অথবা সমান হবে। এছাড়াও, তারা সকলেই v কে বিভক্ত করতে পারে,সুতরাং তাদের ল.সা.গুv এর চেয়ে কম অথবা সমান হবে। কিন্তু আমরা এখনও নিশ্চিত নই। সুতরাং, আমরা তাদের ল.সা.গু এবং গ.সা.গু ণির্ণয় করবো। যদি, ল.সা.গু মূলত v এর সমান হয় এবং গ.সা.গু মূলত v - k এর সমান হয়, তবে "YES" প্রিন্ট করুন। যদি, কোনো v এর জন্যই, উপোরোক্ত শর্তগুলি না মিলে , তবে "NO" প্রিন্ট করুন। এই নিয়মে কপ্লেক্সিটি হবে O(n * (m + k))
শেষ সাবটাস্কের জন্য, দ্বিতীয় সাবটাস্ক থেকে মূল ধারণাটি নিন। আপনি দেখতে পাচ্ছেন যে প্রতিটি v এর জন্য আমরা সেই সংখ্যাগুলি নিচ্ছি যারা v কে বিভক্ত করতে পারে। অন্য কথায়, নেওয়া মানগুলি v এর বিভাজক। সুতরাং, আমরা v এর বিভাজকগুলি গণনা করতে পারি এবং পরীক্ষা করতে পারি যে বিভাজকগুলি অ্যারেতে বিদ্যমান কি না এবং গ.সা.গু দ্বারা বিভাজ্য কিনা। যদি তা হয়, তবে মানটি গ্রহণ করুন। এখানে, 2 * 105 এর চেয়ে কম একটি সংখ্যার সর্বোচ্চ 100 বিভাজক রয়েছে। সুতরাং, প্রতিটি v এর জন্য অ্যারের প্রতিটি মান পরীক্ষা করার চেয়ে এটি খুব কার্যকরী। অবশ্যই, আপনাকে সিভ পদ্ধতিতে 1 থেকে 2 * 105 এর মধ্যে সংখ্যার বিভাজকগুলো পূর্বে গণণা করে রাখতে হবে। এখন, আপনি যেহেতু কম কমপ্লেক্সিটিতেই v - k দ্বারা বিভাজ্য v এর বিভাজকগুলি শনাক্ত করতে পারেন, আপনি জানেন পরবর্তীতে আপনার কী করতে হবে।এই পদ্ধতিতে, যদি (1 + k) থেকে (m + k) পর্যন্ত বিভাজক সংখ্যার যোগফল x এর সমান হয়, তবে কমপ্লেক্সিটি হলো O(nlogn + x), যেখানে nlogn হচ্ছে সিভ এর কমপ্লেক্সিটি।

Statistics

50% Solution Ratio
AST_TheCoderEarliest, Aug '20
Kuddus.6068Fastest, 0.0s
serotoninLightest, 131 kB
serotoninShortest, 792B
Toph uses cookies. By continuing you agree to our Cookie Policy.