ইন্ট্রো
স্যুইচিং ক্রমটি এর মতো সংজ্ঞায়িত হয়:
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?