前書き
サンタには名前が多すぎて処理できないため、あなたの助けが必要です!彼はあなたがプログラムまたは出力機能、書き込む必要がある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です。これは同じなので、何もしていません。次の値が現在の値よりも高い場合、1つ上のステップに進みます。次の値が現在の値よりも低い場合、スターを下げます。同じ場合は、同じ手順を続けます。これがために可視化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
ルール
- 入力を受け取るプログラムまたは関数を提供する必要があります(少なくとも1文字で構成されます)。
 - 入力は、大文字、小文字、スペースで構成されます。入力の長さを除き、プロセス中にスペースは無視されます。
 - これはcode-golfであるため、バイト数が最小の提出が勝ちです!
 
n^3 + 2n^2 + 2、btw によって生成されます。
                ZZZ...Z = 26 * 99 = 2574。つまり、を含むクリスマス番号のみをチェックする必要がありますn=13。(他のゴルファーのための有用な情報。)
                Santa has been very very naughty。待って、何?
                Santa Claus has been very naughty。また、セントニック、セントニコラス、セントニック、セントニコラス、クリスクリングル、ファーザークリスマス、ペールノエル、その他すべてのエイリアスを試してみてください。「すてきな」男は非常に多くの別名を必要とすべき理由すでにかなり疑わしいですが...