ইন্ট্রো
স্যুইচিং ক্রমটি এর মতো সংজ্ঞায়িত হয়:
n
চেনাশোনাতে দাঁড়ানো লোকদের সাথে শুরু করুন ( 6
উদাহরণস্বরূপ)।
1 2
6 3
5 4
ব্যক্তি থেকে শুরু 1
করে, "নির্বাচিত" ব্যক্তির বাম দিকে থাকা ব্যক্তিটি সরানো হয়।
1
6 3
5 4
সরানো ব্যক্তি অপসারণের পদ্ধতিটি "স্যুইচ" করতে পারে:
- যদি সরানো ব্যক্তি সমান হয় (যা এটি এই ক্ষেত্রে হয়), পরবর্তী সরানো ব্যক্তি পরবর্তী "নির্বাচিত" ব্যক্তির ডানদিকে থাকবে to
- যদি সরানো ব্যক্তি বিজোড় হয়, পরবর্তী সরানো ব্যক্তিটি পরবর্তী "নির্বাচিত" ব্যক্তির বাম দিকে থাকবে।
পরবর্তী নির্বাচিত ব্যক্তিও পূর্ববর্তী অপসারণ ব্যক্তির উপর নির্ভরশীল।
- সরানো ব্যক্তি যদি সমান হয় তবে পরবর্তী নির্বাচিত ব্যক্তি পূর্বের নির্বাচিত ব্যক্তির ডানদিকে থাকবে।
- যদি সরানো ব্যক্তি বিজোড় হয় তবে উপরে দেখুন, তবে "বাম" দিয়ে "ডান" প্রতিস্থাপন করুন।
সুতরাং পরবর্তী নির্বাচিত ব্যক্তি হয় 6
।
এখন আমরা সেই ব্যক্তিকে ডানদিকে সরাই 6
, যা হ'ল 5
:
1
6 3
4
5
বিজোড় কারণ , সরানো ব্যক্তি এখন বাম দিকে। নতুন নির্বাচিত ব্যক্তি হলেন 1
।
আমরা এখন অপসারণ 3
:
1
6
4
আমরা এই প্রক্রিয়াটি অব্যাহত রাখি, যতক্ষণ না আমরা 1 নম্বর রেখে চলেছি - উদাহরণস্বরূপ, চূড়ান্ত সংখ্যাটি 1
। সুতরাং তাই S(6) = 1
।
প্রথম কয়েকটি সংখ্যা হ'ল:
n | S(n)
---------
1 | 1
2 | 1
3 | 3
4 | 1
5 | 5
6 | 1
7 | 3
8 | 6
9 | 5
10 | 6
11 | 9
কার্য
আপনার টাস্কটি এমন কোনও প্রোগ্রাম তৈরি করা (বা কোনও ফাংশন) যা দেওয়া হয় S(n)
( n
স্যুইচিং ক্রমের তৃতীয় সংখ্যা) প্রদত্ত হলে n
, সর্বনিম্ন পরিমাণ বাইট ব্যবহার করে।
ইনপুট এবং আউটপুট উদাহরণ:
1 -> 1
10 -> 6
13 -> 13
আপনার ইতিবাচক পূর্ণসংখ্যার নিশ্চয়তা রয়েছে।
এটি কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোড!
দ্রষ্টব্য: আপনাকে অনুসন্ধানের ঝামেলা বাঁচানোর জন্য কোনও ওইআইএস ক্রম নেই (কী?)।
2
কখনও থেকে যায় না, তবে কি 7
?