থেকে পূর্ণসংখ্যা মূল্যবোধের বিন্যাস বিবেচনা 1
করতে N
। যেমন উদাহরণস্বরূপ N = 4
:
[1, 3, 4, 2]
আমরা এই তালিকাটিকে চক্র হিসাবে বিবেচনা করব 1
এবং 2
এটিকে সংলগ্ন হিসাবে বিবেচনা করা হবে। এই জাতীয় তালিকার জন্য আমরা একটি পরিমাণ গণনা করতে পারি এটি সংলগ্ন মানগুলির মোট স্কোয়ার্ড পার্থক্য:
(1-3)² + (3-4)² + (4-2)² + (2-1)² = 10
আপনার টাস্ক একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া, একটি বিন্যাস যা এই পরিমাণ maximizes খুঁজে পেতে N
। N = 4
উপরের উদাহরণের ক্ষেত্রে অনুকূল নয় (আসলে এটি সর্বনিম্ন)। আমরা 18
নিম্নলিখিত ক্রমান্বয়ে (পাশাপাশি বেশ কয়েকটি অন্যান্য) এর মোট স্কোয়ার পার্থক্য অর্জন করতে পারি :
[1, 4, 2, 3]
আপনার অ্যালগরিদমটি বহুপাক্ষিক সময়ে চলবে (এর N
)। বিশেষত, আপনি সমস্ত আদেশের মোট স্কোয়ার পার্থক্যটি সহজেই গণনা করতে পারবেন না।
আপনি STDIN (অথবা নিকটতম বিকল্প), কমান্ড-লাইন আর্গুমেন্ট বা ফাংশন আর্গুমেন্টের মাধ্যমে ইনপুট নিয়ে কোনও প্রোগ্রাম বা ফাংশন লিখতে এবং STDOUT (বা নিকটতম বিকল্প), ফাংশন রিটার্ন মান বা ফাংশন (আউট) প্যারামিটারের মাধ্যমে ফলাফল আউটপুট করতে পারেন।
আউটপুট কোনও সুবিধাজনক, দ্ব্যর্থহীন, ফ্ল্যাট তালিকা বা স্ট্রিং বিন্যাসে থাকতে পারে। আপনি এর থেকে মান সঙ্গে একটি তালিকা আসতে করা চয়ন করতে পারেন 0
করার N-1
পরিবর্তে 1
করতে N
।
স্ট্যান্ডার্ড কোড-গল্ফ বিধি প্রযোজ্য।
পরীক্ষার ডেটা
এই সমস্যার জন্য একটি দুর্দান্ত বিশ্লেষণাত্মক সমাধান রয়েছে। যেমন এর জন্য সমস্ত বৈধ সমাধান N = 10
নিম্নলিখিত তালিকার সমতুল্য (চক্রীয় শিফট এবং বিপরীত পর্যন্ত):
[7, 5, 6, 4, 8, 2, 10, 1, 9, 3]
আমি এর বাইরে খুব বেশি প্রকাশ করতে চাই না (যদিও এটি সম্ভবত প্যাটার্নটি বের করার পক্ষে যথেষ্ট), সুতরাং আরও কোনও উদাহরণ দেওয়ার পরিবর্তে আপনি পরীক্ষা করতে পারেন যে আপনার ফলাফলগুলিতে প্রদত্ত জন্য নিম্নলিখিত মোট স্কোয়ার পার্থক্য রয়েছে N
:
N Total squared difference
1 0
2 2
3 6
4 18
5 36
6 66
7 106
8 162
9 232
10 322
33 11936
100 333202
333 12308236
1000 333332002
এটি ওইআইএস এন্ট্রি A064842 (এতে যদি আপনি আটকে থাকেন তবে এই চ্যালেঞ্জটির সমাধান সহ একটি কাগজের একটি উল্লেখও রয়েছে))
(i<n/2||n%2)^i%2?i+1:n-i
।