N回目のプログラムのN回


10

A入力として正の整数の配列が与えられた場合、何度も繰り返されると、配列kkth(1-index)値を出力するプログラムを生成します。

たとえば、配列がの[1,11]場合、出力はを出力するプログラム1であり、2回繰り返すと出力されます11print(end="1");Python 3のようなコードは動作します:print(end="1");1をprint(end="1");print(end="1");出力し、11 を出力します

すべてのテストケースを解決するための最小コード長の合計が勝利します。メタコードは60秒で500のテストケースを解決し、各ソリューションコードは10秒で返されるはずです。メタコードとソリューションコードは同じ言語である必要はありませんが、メタプログラムが生成するすべてのソリューションは同じ言語である必要があります。

プレテストデータとジェネレーターはここで見ることができます。7日後、提出時間の合計(12:34平均1234など)をランダムシードとして使用し、最終的なテストケースとして別のテストケースを生成します。


最終シードはGMT + 8で7335なので、最終テストデータはこちら


1
「k回繰り返される」とはどういう意味ですか?NewSourceCode = SourceCodeをk回繰り返す?たとえば、SourceCode = "ABC"、k = 3、次にNewSourceCode = "ABCABCABC"?
tsh 2018年

print(end="1");2回繰り返されますprint(end="1");print(end="1");
l4m2

1
「コード長の合計」とはどういう意味ですか?複数のプログラムを提出する必要がありますか?
tsh 2018年

500個のプログラムを生成する1つのプログラムを提出する
l4m2 '16年

2
@Emignaいいえ、リストごとに1つのプログラムを生成します。そのプログラムは正しいと言うx。次にx、リストの最初の要素を与え、リストxxの2番目の要素をxxx与え、3 番目の要素を与えなければなりません。
Chris

回答:


4

Python 3スタックスを生成

これは、さまざまな戦略を使用します。ほとんどの戦略は特定の条件下でのみ適用されますが、常に使用できるフォールバック戦略が1つあります。最後に、最小の候補プログラムが選択されます。


from functools import reduce
from math import sqrt

symbols = " !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_abcdefghijklmnopqrstuvwxyz{|}"

def uncycle(arr):
    for size in range(1, len(arr)):
        if all(e == arr[i % size] for (i, e) in enumerate(arr)):
            return arr[:size]
    return arr

def constant(val):
    return "A" if val == 10 else str(val)

def shift(val):
    if not val: return ""
    return constant(abs(val)) + "+-"[val < 0]

def encode(a, offsetMode):
    result = "";
    if offsetMode:
        for i in range(len(a) - 1, 0, -1):
            a[i] -= a[i - 1]
    for i in range(len(a)):
        parts = []
        signBit = (a[i] < 0) * 2
        continuing = (offsetMode and i == len(a) - 1) * 1
        remain = abs(a[i])
        while remain > 22:
            parts.insert(0, remain % 46 * 2 + continuing);
            remain //= 46
            continuing = 1

        parts.insert(0, remain * 4 + signBit + continuing)
        result += "".join(symbols[p] for p in parts)
    
    return result

def cram(arr):
    flat = encode(arr, False)
    offset = encode(arr, True)
    return offset if len(offset) < len(flat) else flat;

def issquare(num):
    root = int(sqrt(num))
    return root * root == num

def isgeometric(arr):
    r = arr[0]
    return all(r ** (i + 1) == e for (i,e) in enumerate(arr))

def generateProgram(arr):
    candidates = []
    rotated = uncycle(arr)
    rotated = rotated[-1:] + rotated[:-1]

    deltas = [b - a for a,b in zip(arr, arr[1:])]

    # single constant strategy
    if len(arr) == 1:
        candidates.append(constant(arr[0]))

    # repeated constant
    elif len(set(arr)) == 1:
        num = arr[0]
        if num == 10: candidates.append("A")
        if num % 2 == 0: candidates.append(constant(num // 2) + "H")
        if issquare(num): candidates.append(str(int(sqrt(num))) + "J")
        candidates.append(constant(num - 1) +  "^")

    # repdigit
    if len(arr) == 2 and 10 < arr[1] == arr[0] * 11 < 100:
        candidates.append(str(arr[0]) + "p")

    # single digits
    if max(arr) < 10:
        candidates.append("".join(map(str, rotated)) + "E|X@")

    # max 10
    if max(arr) == 10 and rotated[0] != 1:
        candidates.append("".join(str(e - 1) for e in rotated) + "E|X@^")

    fns = [
        ("", lambda x: x),
        ("H", lambda x: 2 * x),
        ("^", lambda x: x + 1),
        ("J", lambda x: x * x),
        ("Hv", lambda x: 2 * x - 1),
        ("H^", lambda x: 2 * x + 1),
        ("^H", lambda x: 2 * x + 2),
        ("HJ", lambda x: 4 * x * x),
        ("JH", lambda x: 2 * x * x),
        (":T", lambda x: x * (x + 1) / 2),
        ("|F", lambda x: reduce(lambda a, b: a*b, range(1, x+1))),
        ("J^", lambda x: x * x + 1),
        ("^J", lambda x: x * x + 2 * x + 1),
    ]
    for (stax, fn) in fns:
        if all(fn(i + 1) == e for (i,e) in enumerate(arr)):
            candidates.append("|X" + stax)

    # fixed delta
    if len(set(deltas)) == 1:
        delta = deltas[0]
        start = arr[0] - delta
        if start == 0:
            candidates.append(shift(delta))
        if delta == 1:
            candidates.append("|X" + shift(start))
        elif delta == -1:
            candidates.append("|x" + shift(start))
        elif delta > 1:
            candidates.append("|X" + constant(delta) + "*" + shift(start))
        elif delta < -1:
            candidates.append("|x" + constant(-delta) + "*" + shift(start))

    # geometric series
    if isgeometric(arr):
        candidates.append(constant(arr[0]) + "*")

    # prefix
    if len(arr) == 2 and arr[1] // 10 == arr[0] < 10:
        candidates.append("." + str(arr[1]) + "|X(")

    # suffix
    if len(arr) == 2 and arr[0] % 10 == arr[1] < 10:
        candidates.append("." + "".join(map(str, arr)) + "|X)")

    # uncycled cram
    candidates.append('"' + cram(rotated) + '"!|X@')
    
    candidates.sort(key=len)
    return candidates[0]

while True:
    arr = eval(input())
    prog = generateProgram(arr)
    print(prog)

オンラインでお試しください!

更新:検証 各プログラムの各多重度を個別に実行するには時間がかかります。それらをすべて同時に実行することが可能です。これを行うには、小さなコードを使用する必要があります。それはいくつかのことに責任があります。

  1. もしあれば、暗黙の出力を行います。通常、staxプログラムの最後に、他に出力がなかった場合、スタックの先頭が出力されます。同じソースファイルで複数のプログラムを実行する場合、これは明示的に行う必要があります。

  2. 両方のスタックをクリアします。

  3. レジスタをリセットします。これらのプログラムでは、xレジスタのみが使用されます。

このボイラープレートは、個々のプログラムを実行するたびに適用する必要があります。

|d{P}{zP}?0XLd

たとえば、入力[5,2,7,3]はstaxプログラムを生成し3527E|X@ます。4つの多重度すべてを一度にテストできます。

3527E|X@
|d{P}{zP}?0XLd

3527E|X@3527E|X@
|d{P}{zP}?0XLd

3527E|X@3527E|X@3527E|X@
|d{P}{zP}?0XLd

3527E|X@3527E|X@3527E|X@3527E|X@
|d{P}{zP}?0XLd

オンラインでお試しください!

このようにして、何も中断しないと仮定して、すべてのプログラムのすべての多重度を同じ実行でテストすることが可能です。これは、500をすべて実行した場合、おそらくこれまでに実行された最大のスタックスプログラムになるでしょう。


最終スコア7862
l4m2

4

Perl 5の -p生成のPerl 5は -p、オーバーヘッド19 17 13

-1 @Dom Hastingsに感謝

1つの入力のスコアはになりますlength of the input + 13。大きな入力用の自己解凍プログラムを生成することで明らかに改善できますが、私は気にしません。

STDINの1行にコンマで区切られた入力配列を指定します。

#!/usr/bin/perl -p
chomp;$_="}{\$_=($_)[\$%++]"

オンラインでお試しください!

n入力なしで出力を連結して実行します(例:/ dev / nullからのリダイレクト)

入力のためにそれを実行するサンプルの方法2,6,4,7と、結果のプログラムは4回繰り返されます。

perl -p '}{$_=(3,6,4,7)[$%++]}{$_=(3,6,4,7)[$%++]}{$_=(3,6,4,7)[$%++]}{$_=(3,6,4,7)[$%++]' < /dev/null

オンラインでお試しください!

STDINから読み取ろうとする結果のプログラムが気に入らない場合は、オーバーヘッド17でこのバージョンを使用します。

#!/usr/bin/perl -p
chomp;$_="1/!say+($_)[\$-++],"

オンラインでお試しください!

入力のためにそれを実行するサンプルの方法2,6,4,7と、結果のプログラムは4回繰り返されます。

perl -E '1/!say+(2,6,4,7)[$-++],1/!say+(2,6,4,7)[$-++],1/!say+(2,6,4,7)[$-++],1/!say+(2,6,4,7)[$-++],'

オンラインでお試しください!

このバージョンは、必要な出力を印刷した後にクラッシュします


私はかなりの得点を得たかどうかはわかりませんが、このプログラムは1バイト少ないですs/ /,/g;$_="die say+($_)[\$-++],"か?
Dom Hastings

@DomHastings確かにそうです。
Ton Hospel 2018年

最終スコア17106
l4m2

3

05AB1E05AB1Eを生成

¸»“"ÿ"#.g<“ƵƒçJ

オンラインでお試しください!

入力用に生成されたプログラム[5,17,7,13,2]"5 17 7 13 2"#.g<èです。

[5、17、7、13、2]のテストスイート

生成されたプログラムの長さは len(input) + 5


1
明確にするためにlen(input)、整数の数ではなく、それらすべてを保持する文字列の長さです。最初は誤解しました。
再帰

最終スコア14606
l4m2

3

APL(Dyalog Unicode)

匿名の接頭辞ラムダ。プログラム本体を返します。

 {
     1=≢⍵:⍕⍵  single element

     (2=≢⍵)∧(⍵[2]=11×⍵[1]):⍕⍵[1]  2, 22 etc.

     1=≢∪⍵:'⊢',⍕⊃⍵  all the same

     (⊢≡⊃×⍳∘≢)⍵:'+',⍕⊃⍵  linear

     ((⌊=⊢)!⍣¯1⊢⊃⍵)∧(1∧.=1↓⍵):'!',⍕!⍣¯1⊃⍵  factorial followed by all 1s

     (⍵[2]∧.=1↓⍵)∧(⍵[1]=10|2⊃⍵):(⍕⊃⍵),'⌈',(⊃⍕2⊃⍵)  b ab ab ab

     e←{∊⍉2 2'+×',⍕¨⍵}¨⍸(⊃⍵)=∘.×⍨⍳10
     b←⍵∘≡¨e(({0::⍬  ⍎⍵}¨,\)⍴∘⊂)¨⍨(≢⍵)
     ∨/b:⊃b/e

     Q←{'''',⍨⍵/⍨1+''''=⍵}
     (5∧.≤⍵)∧(≢⍕⍵)>6+(+/14=⍵)+≢⍵:'{⍺←⎕AV⍳⊃⋄1⌽⍺⊢⍵}''',Q AV[⍵]  string fallback

     (≢⍕⍵)>9+(+/5=⍵)+≢⍵:'{⍺←¯4+⎕AV⍳⊃⋄1⌽⍺⊢⍵}''',Q AV[4+⍵]  offset string fallback

     '{⍺←⊃⋄1⌽⍺⊢⍵}',⍕⍵  fallback
 }

オンラインでお試しください!

方法

これはさまざまなメソッドを探索し、最初に使用可能なメソッドを返し、最終的には普遍的に適用可能なメソッドにフォールバックします。

単一要素

リストに要素が1つしかない場合は、そのまま返されます。

2、22など

1桁を繰り返すだけで、11倍の数を生成できます。

すべて同じ

一番右の()番号を返すだけです。

線形

f(n)= k×nシーケンスは、最初の項の前にプラスを挿入するだけです。

階乗の後にすべて1が続く

最初の数N =!mおよびその後の番号が1である場合、次いで!mためソリューションで!mあり、nおよびm!m1であり、!11です。

b ab ab ab

すべての2桁の数字はすべての1桁の数字よりも大きいため、最初の数字の前を2番目の数字の後ろに接着する実行最大値が解決策です。

三行コード

タイプの式+a×bが有効かどうかを確認してください。

文字列のフォールバック

5未満の数字のない長いシーケンス(4は改行であるため)は、SBCSの文字としてエンコードできます。

オフセット文字列のフォールバック

5未満の数値がある場合は、それらを回避するために9だけシフトアップします。

後退する

文字列"{⍺←⊃⋄1⌽⍺⊢⍵}"と文字列化された()入力の単純な文字列連結。例えば[3,1,4]、プログラム本体を返します{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4

中括弧で囲まれた部分は、あいまいな関数です。つまり、前置関数または中置関数のいずれかになります。したがって、その左端のインスタンスは接頭辞モードで実行され、他のすべてのインスタンスは接頭辞モードで実行されます。モード間の違いは、左の引数を示すが値を持つかどうかです。ない場合は、機能が割り当てられます(最初)。

フォールバック方法の説明

{} 匿名のラムダ:

⍺←⊃ 左引数()がない場合は、関数(最初)を

 次に:

この時点で、次のコードは、数値のリスト(インフィックスコール)であるか、関数 "first"(プレフィックスコール)であるかに応じて、2つの異なることを意味します。

 場合は番号のリストは以下のとおりです。

  ⍺⊢⍵ 右の引数を支持して左の引数を破棄する

  1⌽ その一歩左に回転

 場合は、「最初の」機能です。

  ⊢⍵ 正しい議論をもたらす

   その最初の要素を選びます

  1⌽ 1ステップ回転します(スカラーで何もしない)

フォールバックメソッドの実行例

3 1 4のコードを実行{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4すると、「最初の」関数がに割り当てられ、最初の要素が返されます。3

実行{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4すると、右端のラムダが左3 1 4をその左引数として「キャプチャ」するため、破棄される値が優先3 1 41 4 3れるため、1ステップ左に回転され、結果が得られます。次に、これは左端のラムダの唯一の引数として使用されます。ここで「最初の」関数になり、結果が最初の要素になります。1

実行{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4{⍺←⊃⋄1⌽⍺⊢⍵}3 1 4すると、右端のラムダが中央3 1 4をその左の引数として「キャプチャ」し、右の引数が優先されて破棄され3 1 4、左に1ステップ回転するとになり1 4 3ます。次に、これは左端の3 1 4引数として左端とともに中央のラムダの右引数として使用されます。左の引数は右に破棄され、左に1ステップ回転するとが生成され4 3 1ます。これは、左端のラムダの唯一の引数になるため、「最初の関数」になり、最初の要素を返します。4

得点

実際のデータを使用してテストするときが来たら、このテストハーネスを使用してください(リンク済みの事前テストデータがリンクされています)。テストケースは入力フィールドに入力され、出力は500のプログラムすべての合計バイト数になります。(エラーもスローしますが、それは後で入力をそのまま評価しようとするからです。)


1
最終スコア14028
l4m2

2

木炭

´⎚´§´⪪⪫IA ”y¦ Lυ⊞υω

オンラインでお試しください!リンクはコードの詳細バージョンです。説明:

´⎚´§´⪪

リテラル文字列を出力します⎚§⪪

⪫IA 

入力配列を文字列にキャストし、スペースで結合して印刷します。

”y¦ Lυ⊞υω

リテラル文字列を出力します¦ Lυ⊞υω

たとえばの出力5,17,7,13,2⎚§⪪5 17 7 13 2¦ Lυ⊞υωです。オンラインでお試しください!説明:

キャンバスをクリアして、最後の出力のみが表示されるようにします。

§⪪5 17 7 13 2¦ Lυ

事前定義されたリストの長さを取るu。これを使用して、スペースで分割された整数のリストにインデックスを付け、選択した要素を出力します。

⊞υω

ダミー変数を定義済みリストuにプッシュして、次のコピーがリストの次の要素を出力するようにします。

合計出力長=(すべてのリストのすべての整数の長さ)+(すべてのリストの整数の数)+(リストの数* 9)文字(SBCS)。


2

HaskellHaskellを生成します

main = interact $ ("main=print$("++) . (++"!!)$ -1\n +1--")

オンラインでお試しください!最初のテストケース[5,2,7,3,2,3,15,10,7,2,14,11,16,16,3,3,4,3,8,4]では、次のプログラムを生成します。

main=print$([5,2,7,3,2,3,15,10,7,2,14,11,16,16,3,3,4,3,8,4]!!)$ -1
 +1--

一度試して、2倍にして3 倍にます。これは、ソースを2倍にし、出力を2倍にするという Haskellの回答と同じアプローチを使用しています

生成された各プログラムの長さは、文字列+ 25としての入力リストの長さです12266 + 500 * 25 = 24766。したがって、現在利用可能なテストケースのスコアはです。これは、コードとデータの比率が基本的に同じであることを示しており、スコアを下げる十分に小さい解凍コードを書くことはできないと思います。リストがはるかに大きい場合、それは可能かもしれません。


1

Python 2Python 2を生成

import sys
a=`input()[::-1]`.replace(' ','')
sys.stdout.write('print%s[-open(__file__,"a").tell()/%s]#'%(a,len(a)+37))

オンラインでお試しください!

入力用

[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]

生成されたプログラムは

print[29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10][-open(__file__,"a").tell()/98]#

これは98バイトです。

「私はソースを2倍にすると、出力が2倍になります」のこのソリューションから適応されました。

くそー、私がこの回答を書き終える前に、2つの短い回答が飛び出しました。


最後に追加の改行があり、これにより出力されkます
l4m2 2018年

予想される動作は、「printステートメントがコンマで終わっていない限り、「\ n」文字が最後に書き込まれます。」TIOが標準出力に余分な改行を表示する理由がわかりません。
バブラー

末尾の「何か」を削除するように変更printsys.stdout.writeれました。
バブラー

最終スコア30606
l4m2

1

Java 8、Python 2を生成

interface M{static void main(String[]a){int l=a[0].length();System.out.print("print"+a[0]+"[open(__file__,'a').tell()/"+(l+35+(l+"").length())+"]#");}}

オンラインでお試しください。

つまり[3,4,5,6,7]、このPython 2プログラムを生成します。

print[3,4,5,6,7][open(__file__,'a').tell()/48]#

オンラインで一度お試しくださいオンラインで2回試してくださいオンラインで3回試してください

生成されたPythonプログラムは、チャームチャレンジの3回目@ Mr.Xcoderの回答に基づいています。

説明:

Java 8コード:

interface M{                    // Class
  static void main(String[]a){  //  Mandatory main-method
    int l=a[0].length();        //   The length of the first argument
                                //   (Note that this is the length of the input as String,
                                //   not the size of the array)
    System.out.print(           //   Print:
      "print"                   //    Literal "print"
      +a[0]                     //    Appended with the argument
      +"[open(__file__,'a').tell()/"
                                //    Appended with literal "[open(__file__,'a').tell()/"
      +                         //    Appended with an integer that is formed by:
       (l                       //     Getting the length we got earlier
       +35                      //     +34 for the rest of the Python 2 code + 1
       +(l+"").length())        //     + the length of the length (<10→1; 10-99→2; etc.)
       +"]#");}}                //    Appended with literal "]#"

Python 2コード:

print                        # Print
 [3,4,5,6,7]                 #  From this array
 [                           #   The `k`'th item,
  open(__file__,'a').tell()  #   where `k` is the length of its own source code
  /                          #   divided by
  48                         #   the length of its own source code (once) + 1
 ]#                          # With a trailing comment, so we can repeat the program

0

Bash、Perl 5でプログラムを出力

Bashプログラムはのように呼び出すことができますscript.sh 1,2,3

Perlプログラムは-Eフラグを指定して呼び出す必要があります。

echo "shift@a;@a=($1)unless@a;END{say\$a[0];exec'true'}"

perl入力の生成コード4,7,8は次のとおりです。

shift@a;@a=(4,7,8)unless@a;END{say$a[0];exec'true'}

かなり力ずく。配列の要素を削除し(perl最初は配列が存在しなくても構いません)、まだ設定されていない場合は設定します。次に、配列の最初の要素を最後にエコーします。(ENDブロックは最後に実行されます)。exec 'true'さらにそのことを、プログラムを終了したENDブロックは実行されません。

例:

#Once
$ perl -E "$(bash script.sh 4,7,8)"
4

#Duplicated twice
$ perl -E "$(bash script.sh 4,7,8)$(bash script.sh 4,7,8)"
7

#Duplicated thrice
$ perl -E "$(bash script.sh 4,7,8)$(bash script.sh 4,7,8)$(bash script.sh 4,7,8)"
8

最終スコア34106
l4m2

0

Python 2、C ++を生成

これはレコードを打ち負かすつもりはありません、私は主にそれを行う方法を理解できるかどうかを考えることに興味がありました:)グローバル変数がメインの前に実行されるという事実を使用して、グローバル変数をインクリメントし、次に#ifdefを使用して、メインが1回だけ定義されるようにします。

import sys
print("""#include <stdio.h>
#ifndef A
#define A
int v;
int d[]={""" + sys.argv[1] + """};
struct C{C(){v++;}};
int main(void){ printf("%d",d[v]); }
#else
C c1;
#endif
""")

0

ルーンエンチャント、ルーンを生成します

74akw94/85akw
R32B~~?US' Sqq1Ky1Ky
\i<{1[lil1-{S{)]{{1KyB
D'0$'´$$' $     Rl0) ?
R"{Zs$;|1|l;|y"@
"UwR'10<|I+}"$~ /' Su0
       Rakwc4akw/

オンラインでお試しください!

スペースで区切られた値のリストとして入力を受け取ります。

1回の
出力2回の
出力4回の出力

1月12日´にコミットさた連続数値読み取りモードコマンドを使用し、14日にこの質問を見つけました。このコマンドを使用すると、この機能がないと非常に難しいため、任意の長さの値をエンコードできます(たとえば、1392として表す必要があり1X3+X9+X2+、少なくとも追加のループが必要になります)。´コマンドを作成したときに解決したかった問題です。

元のコードでは、|文字列の中"{Zs$;|1|l;|y"とは"UwR'10<|I+}"置き換えられます\n(グリッドに座って、それを変更しないで、それらが通常どおり)とのw儀式コマンド:74akw94/Rakwc4akw、と85akw。元の文字は文字通り何でもかまいません。|私が欲しいものを視覚的に表す象徴的なプレースホルダーとして選ばれました。いくつかのバイトとして、反射的エントリーポイントを追加する必要がないことによって(unscoringものであれば)保存されたwR'10<書き込みRがまだ(位置が存在する場所に0,1ルーピング以下)した後、マナを使い果たす前に、ジャンクとのスタックを埋めるために進み、シーケンスU"'i34

結果の出力コードは、writeコマンドを使用して2行目の最初の文字をRightリダイレクションに変更することにより(1つのIPのみがprintステートメントを実行します)、背の高いプログラムと背の高いプログラムから得られるスタック長を巧みに使用して、どのインデックスを決定するかを決定します読む。他のすべてのIPは、同じ場所を同じ命令に変更して終了します。他はすべて未使用になります。

実行フロー

画像は古くなっていますが、フローの説明には十分です。

が実行1Iyされるたびに、IPがますます大きくなる(lコマンドによって引き起こされる)スタックを処理する能力が維持されます。そのサイズにより、プログラムは、ベースソースコードのコピーの数を判別できます。ファイナル1l、正しい値に到達するためにスタック(次に作成される)をローテーションするときに、前のものを必要な数にインクリメントするために使用されます。Z正しい方向にスタックが回転するように、コマンドは、この値をネゲートします。

次に、元の入力を読み取るために、同じ値を徐々に変更することを避けるために、0で準備された連続読み取りモードを使用して、元の入力配列がエンコードされます。連続読み取りモードを終了し、後続の0がスタックを再び準備できるようにするには、スペースNOPが必要です。

スコアはほぼ等しくなければならない3+v.toString().length各配列エントリのためv+23各アレイについて。おおよそ、(2.55*total length of input)または33837サンプル入力の場合、私が正しく行った場合。

sコマンドに関する同じビルドで導入された副作用のために、予想される最終プログラムに小さな変更が導入されましたが、同時により良いスコアが得られました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.