ভূমিকা
প্রক্রিয়া করার জন্য সান্টার অনেকগুলি নাম রয়েছে এবং আপনার সহায়তা প্রয়োজন! তিনি আপনাকে একটি প্রোগ্রাম বা ফাংশন, যা আউটপুট লেখার জন্য দরকার nice
, naughty
, very naughty
বা very very naughty
। কেউ কতটা সুন্দর বা দুষ্টু তা নির্ধারণ করতে সান্তা একটি অ্যালগরিদম তৈরি করেছিলেন:
প্রথমত, আমরা নাম থেকে সমস্ত অক্ষর আপ ( ফাঁকা স্থান উপেক্ষা ) যুক্ত করে একটি সংখ্যা পাই । উদাহরণ স্বরূপ:
Doorknob =
D = 4
o = 15
o = 15
r = 18
k = 11
n = 14
o = 15
b = 2
4 + 15 + 15 + 18 + 11 + 14 + 15 + 2 = 94
যদি বিভাজকের সংখ্যা নামের দৈর্ঘ্যের সমান হয় তবে ব্যক্তিটিকে বিবেচনা করা হয় nice
। এর অর্থ আপনার প্রোগ্রামটি আউটপুট করা উচিত [name] has been nice
। এখানে বিভাজনগুলি হ'ল 94
:
Divisors of 94: 1, 2, 47, 94
আছে 4
ভাজক কিন্তু নাম দৈর্ঘ্য 8
( স্পেস অন্তর্ভুক্ত )। উপসংহার, ভাল ছিল Doorknob
না। সুতরাং আমরা আমাদের যাত্রা অব্যাহত:
সান্তা একটি নতুন ক্রম ক্রিসমাস নম্বর তৈরি করেছে । প্রথমত, আমরা নিম্নলিখিত ক্রিসমাস গাছগুলি দেখব:
n = 1 n = 2 n = 3 n = 4
*
***
*****
*******
*********
_ * ***
| *** *****
| ***** *******
* | ******* *********
* *** | *** ***
*** ***** n*n | ***** *****
* *** | ******* *******
***** | *** *********
* | ***** ***
|_******* *****
* *******
|_____| *********
2n+1 *
5 18 47 98
নক্ষত্রের পরিমাণ ক্রিসমাস সংখ্যা নির্ধারণ করে। ক্রম নিম্নলিখিত হিসাবে যায়: 5, 18, 47, 98, 177, ...
।
এখান থেকে, আমরা উপসংহারে পৌঁছাতে পারি যে 94
ক্রিসমাস নম্বর নয়। তার মানে Doorknob
কেবল দুষ্টু হয়নি।
খুব দুষ্টু ( স্ট্রিং ):
এই জন্য, আমরা খুঁজে বের করতে যদি প্রয়োজন Doorknob
একটি হল উত্থাপন মই স্ট্রিং । এই সঙ্গে নামে চিঠি দ্বারা নির্ধারিত হয় A = 1
, B = 2
, C = 3
, ইত্যাদি .:
প্রথম আমরা প্রথম অক্ষর তাকান হবে D
। এর মান আছে 4
। এটি আমাদের সূচনার পয়েন্ট। পরের চিঠিটি হ'ল o
। এটির মান রয়েছে 15
যা আমাদের আগের মানের চেয়ে বেশি, সুতরাং আমরা মইয়ের উপরে এক ধাপ এগিয়ে চলেছি। পরের মানটিও একটি o
। এটি একই, তাই আমরা কিছুই করছি না। যদি পরবর্তী মান বর্তমান মানের চেয়ে বেশি হয় তবে আমরা একধাপ এগিয়ে চলে যাব। যদি পরবর্তী মান বর্তমান মানের চেয়ে কম হয়, তবে আমরা আরও কম স্থানে চলে যাব। যদি এটি একই হয় তবে আমরা একই ধাপে থাকব। এই জন্য ভিজ্যুয়ালাইজ Doorknob
, Martin Buttner
এবং Alex A
:
O
/ \
R N B
/ \ /
O-O K T N U L X
/ / \ / \ / \ / \ / \
D M R I B T-T A E A
\ / \
A N R
\ /
E
আপনি দেখতে পারেন যে Doorknob
এটি শুরু অবস্থানের চেয়ে বেশি শেষ। তাই Doorknob has been very naughty
। Martin Buttner
এবং Alex A
প্রারম্ভিক বিন্দুর চেয়ে বেশি উঠেনি। সুতরাং তারা উভয় very very naughty
।
পরীক্ষার মামলা
Input: Doorknob
Output: Doorknob has been very naughty
Input: Martin Buttner
Output: Martin Buttner has been very very naughty
Input: Jakube
Output: Jakube has been nice
Input: B
Output: B has been very very naughty
বিধি
- আপনাকে কোনও প্রোগ্রাম বা একটি ক্রিয়াকলাপ সরবরাহ করতে হবে যা ইনপুট নেয় (যার অন্তত একটি অক্ষর থাকে)।
- ইনপুটটিতে বড় হাতের অক্ষর , ছোট হাতের অক্ষর এবং স্পেস থাকবে । প্রক্রিয়া চলাকালীন ইনপুটটির দৈর্ঘ্য ব্যতীত স্থানগুলি উপেক্ষা করা হয়।
- এটি কোড-গল্ফ , তাই সর্বনিম্ন পরিমাণ বাইটের সাথে জমাটি জয়!
n^3 + 2n^2 + 2
বিটিডব্লিউ দ্বারা উত্পাদিত হয় ।
ZZZ...Z = 26 * 99 = 2574
অর্থ, আপনার কেবল ক্রিসমাসের সংখ্যাগুলি পরীক্ষা করা এবং অন্তর্ভুক্ত করা উচিত n=13
। (অন্যান্য গল্ফারদের জন্য দরকারী তথ্য।)
Santa has been very very naughty
। কিসের অপেক্ষা?
Santa Claus has been very naughty
। সেন্ট নিক, সেন্ট নিকোলাস, সেন্ট নিক, সেন্ট নিকোলাস, ক্রিস ক্রিংল, ফাদার ক্রিসমাস, পেরে নোয়েল এবং তার সমস্ত অন্যান্য এলিয়াসও ব্যবহার করা উচিত - সম্ভবত তাদের মধ্যে কেউ কাজ করবে? যদিও একজন "সুন্দর" ছেলের এত সংখ্যক উপাধিকার প্রয়োজন তা ইতিমধ্যে সন্দেহজনক ...