আপনি দীর্ঘদিন ধরে একটি উন্নত সংগ্রহের ডিভাইস কন্ট্রোলারের কাছ থেকে ডেটা সংগ্রহ করছেন । আপনি লগগুলি পরীক্ষা করে দেখেন এবং আপনার ভয়াবহতায় আপনি আবিষ্কার করেছেন যে কিছু মারাত্মকভাবে ভুল হয়েছে: ডেটাতে কেবল সংখ্যার শেষ বিট থাকে!
ভাগ্যক্রমে, আপনি শুরুর মানটি জানেন এবং মানটি কখনই দ্রুত পরিবর্তন হয় না। এর অর্থ আপনি শুরু থেকে দূরত্ব খুঁজে বের করে বিশ্রামটি পুনরুদ্ধার করতে পারেন।
চ্যালেঞ্জ
একটি মডিউলাস N
এবং মধ্যবর্তী মানের মডুলোর একটি তালিকা প্রদত্ত, একটি মান পরিবর্তিত পরিমাণ গণনা করার জন্য আপনি একটি প্রোগ্রাম বা একটি ফাংশন লিখবেন N
।
প্রতিটি জোড় সংখ্যার মধ্যে পরিবর্তন সর্বদা এর চেয়ে কম থাকেN/2
, সুতরাং প্রতিটি পরীক্ষার ক্ষেত্রে কেবল একটি বৈধ উত্তর থাকবে।
আপনাকে N
নিজের পছন্দ মতো একটি বিন্যাসে ইনপুট হিসাবে একটি পূর্ণসংখ্য > 2 এবং মানগুলির তালিকা দেওয়া হবে । এসটিডিআইএন বা কমান্ড লাইন বা ফাংশন আর্গুমেন্টের মাধ্যমে ইনপুট দেওয়া যেতে পারে।
আপনি একটি একক পূর্ণসংখ্যা আউটপুট পাবেন, আসল মানটির পরিমাণটি পরিবর্তিত হয়েছে। আউটপুট STDOUT এ মুদ্রিত বা ফিরে আসতে পারে।
বিধি
- আপনার প্রোগ্রামটি অবশ্যই কোনও দূরত্ব এবং মডুলাসের চেয়ে কম সময়ের জন্য কাজ করবে
2^20
। - আপনি ধরে নিতে পারেন:
N
অন্তত হয়3
।- তালিকার কমপক্ষে 2 টি মান রয়েছে।
- তালিকার সমস্ত মান কমপক্ষে 0 এবং এর চেয়ে কম
N
। - সংখ্যার সমস্ত পরিবর্তন এর চেয়ে কম
N/2
।
- অন্য যে কোনও কিছুই একটি অবৈধ ইনপুট এবং আপনার প্রোগ্রাম যা খুশি তা করতে পারে।
- এই সঠিক উদ্দেশ্যে স্ট্যান্ডার্ড লুফোলস, কোনও মানহীন গ্রন্থাগার এবং অন্তর্নির্মিত কার্য নিষিদ্ধ।
- এটি কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জিতে।
উদাহরণ পরীক্ষার ক্ষেত্রে
ইনপুট:
3
0 1 2 2 0 1 0 2 1 2 0 1 2 1 1
আউটপুট:
4
ব্যাখ্যা (উদাহরণস্বরূপ মান সহ):
Value mod 3: 0 1 2 2 0 1 0 2 1 2 0 1 2 1 1
Value: 0 1 2 2 3 4 3 2 1 2 3 4 5 4 4
ইনপুট:
10
5 2 8 9 5
আউটপুট:
-10
ব্যাখ্যা (উদাহরণস্বরূপ মান সহ):
Value mod 10: 5 2 8 9 5
Value: 15 12 8 9 5
অবৈধ ইনপুট:
2
0 0 0 0 0
(খুব ছোট মডুলাস)
6
2 5 4 2
(2 এবং 5 এর মধ্যে খুব বড় পরিবর্তন)
:^;[5 2 8 9 5](\
?