fiには小さすぎる、最も優れた証明!


12

あなたは家に座って、最も邪悪なやり方で手をこすります。今回は、コミュニティA-SPINを設定できます!ここでこの本の中でこの問題(間違いなく改善可能)を証明したと主張するだけです...最初の関連ページを開きます。あなたはそれらの言葉を走り書きする…

もちろん、あなたは邪悪なフェルマーです!はは、ただの冗談さ。あなたはそれがこのように起こらなかったことを知っています。これは単に彼の邪悪な双子、フォーマットの物語です。ここでの形式は、彼の「証拠」を余白に凝縮するのが面倒です。したがって、彼はあなたに彼のためにそれをするように呼びかけました。

目的プルーフ(文字列)とページ(テキストブロック)を指定して、プルーフのマージンに「書き込み」ます。

有効なページルール

テキストブロックには、次の要件を満たしている場合にのみページが含まれます。

  • 上部と下部の境界線は次の形式です-{10,}\+$-a +、それから行末まで少なくとも10回の正規表現)。
  • すべての非最上行および非最下行は、で終わる必要があり|ます。そのような行が少なくとも1つあります。
  • |各行の最後から少なくとも5つのスペースがあります。
  • すべての線は同じ幅です。

したがって、次は有効なページです(.sは最大マージン境界がどこにあるかを示すためのものです)。

-----------------+
Lorem Ipsum.     |
and other  .     |
latin crud .     |
           .     |
        EOF.     |
-----------------+

マージンが広い別のページを次に示します。

------------------------+
Hello world!   .        |
How are you, to.        |
day? --Mme. B  .        |
               .        |
------------------------+

できる限り単語を維持しながら、マージンに所定の文字列を書き込む必要があります。たとえばhello、次の行に収まる場合は、現在の行で改行しないでください。

I / O

フィラーテキスト

Proof: This is a most excellent proof, too small for anyone!
Text:                       ; not a leading newline
------------------------+
Hello world!            |
How are you, to         |
day? --Mme. B           |
                        |
------------------------+
Output: 
------------------------+
Hello world!    This a  |
How are you, to most    |
day? --Mme. B   excellen|
                t proof,|
------------------------+    

Proof: Execute the member as an example to the others!
Text:
------------------------------------------------+
Contrary to popular belief, Lorem               |
Ipsum is not simply random text.                |
It has roots in a piece of classical            |
Latin literature from 45 BC, making             |
it over 2000 years old. Richard                 |
McClintock, a Latin professor at                |
Hampden-Sydney College in Virginia,             |
looked up one of the more obscure               |
Latin words, consectetur, from a                |
Lorem Ipsum passage, and going through          |
the cites of the word in classical              |
literature, discovered the undoubtable          |
source. Lorem Ipsum comes from...               |
------------------------------------------------+
Output:
------------------------------------------------+
Contrary to popular belief, Lorem      Execute  |
Ipsum is not simply random text.       the      |
It has roots in a piece of classical   member as|
Latin literature from 45 BC, making    an       |
it over 2000 years old. Richard        example  |
McClintock, a Latin professor at       to the   |
Hampden-Sydney College in Virginia,    others!  |
looked up one of the more obscure               |
Latin words, consectetur, from a                |
Lorem Ipsum passage, and going through          |
the cites of the word in classical              |
literature, discovered the undoubtable          |
source. Lorem Ipsum comes from...               |
------------------------------------------------+

Proof: Consider supercalifragilisticexpialidocious. Therefore, x.
Output:
-----------------------------------------+
sections 1.10.32 and                     |
1.10.33 of "de Finibus                   |
Bonorum et Malorum"                      |
(The Extremes of Good                    |
and Evil) by Cicero,                     |
written in 45 BC. This                   |
book is a treatise on                    |
the theory of ethics,                    |
very popular during the                  |
Renaissance. The first                   |
line of Lorem Ipsum,                     |
"Lorem ipsum dolor sit                   |
amet..", comes from a                    |
line in section 1.10.32.                 |
-----------------------------------------+
Output: Consider supercalifragilisticexpialidocious. Therefore, x.
-----------------------------------------+
sections 1.10.32 and     Consider        |
1.10.33 of "de Finibus   supercalifragili|
Bonorum et Malorum"      sticexpialidocio|
(The Extremes of Good    us. Therefore, x|
and Evil) by Cicero,     .               |
written in 45 BC. This                   |
book is a treatise on                    |
the theory of ethics,                    |
very popular during the                  |
Renaissance. The first                   |
line of Lorem Ipsum,                     |
"Lorem ipsum dolor sit                   |
amet..", comes from a                    |
line in section 1.10.32.                 |
-----------------------------------------+

Proof: Alex is a bird. All birds can fly. All things that fly are wrong. Ergo, Alex is wrong.
Text:
----------+
Sorry     |    ; 5 spaces. 
----------+
Output:
----------+
Sorry Alex|
----------+

これはなので、バイト単位の最短プログラムが勝ちです!


リーダーボード


codegolfにはほとんど新しいことはありませんが、ファイルからページとプルーフを選択できますか?または、ユーザーI / Oから取得する必要がありますか?
wnnmaw

@wnnmawようこそ、ゴルフをコーディングしましょう!良い場合は、ファイルから読み取ることを選択できます。
コナーオブライエン


@Megoまったくそうではありません。これは、さらに「マージン」を認識することを望んでいます。そのテキストは、単に分割されているのではなく、正当化されている必要があります。
コナーオブライエン

さて、lorem ipsumについて教えてくれてありがとう。:P
Rɪᴋᴇʀ

回答:


4

Python 2、334

p=open("f.txt",'r').readlines()
r,S,p=p[0][7:],p[2].strip(),p[3:-1]
import textwrap as t,itertools as i
m,l=max([len(s[:-5].strip()) for s in p]),len(S)-2
P = i.izip_longest(["{} {{:{}}}|".format(s[:m],l-m) for s in p],t.wrap(r,l-m),fillvalue="")
print S
for q in P:
 if not q[0]:break
 print q[0].format(q[1])
print S

内容のf.txt後にコード出力が続くサンプルIO

事例1

Proof: This is a most excellent proof, too small for anyone!
Text:                       
------------------------+
Hello world!            |
How are you, to         |
day? --Mme. B           |
                        |
------------------------+

------------------------+
Hello world!    Proof:  |
How are you, to This is |
day? --Mme. B   a most e|
                xcellent|
------------------------+

事例2

Proof: Consider supercalifragilisticexpialidocious. Therefore, x.
Output:
-----------------------------------------+
sections 1.10.32 and                     |
1.10.33 of "de Finibus                   |
Bonorum et Malorum"                      |
(The Extremes of Good                    |
and Evil) by Cicero,                     |
written in 45 BC. This                   |
book is a treatise on                    |
the theory of ethics,                    |
very popular during the                  |
Renaissance. The first                   |
line of Lorem Ipsum,                     |
"Lorem ipsum dolor sit                   |
amet..", comes from a                    |
line in section 1.10.32.                 |
-----------------------------------------+

-----------------------------------------+
sections 1.10.32 and     Consider superca|
1.10.33 of "de Finibus   lifragilisticexp|
Bonorum et Malorum"      ialidocious.    |
(The Extremes of Good    Therefore, x.   |
and Evil) by Cicero,                     |
written in 45 BC. This                   |
book is a treatise on                    |
the theory of ethics,                    |
very popular during the                  |
Renaissance. The first                   |
line of Lorem Ipsum,                     |
"Lorem ipsum dolor sit                   |
amet..", comes from a                    |
line in section 1.10.32.                 |
-----------------------------------------+

事例3

Proof: Alex is a bird. All birds can fly. All things that fly are wrong. Ergo, Alex is wrong.
Text:
----------+
Sorry     |   
----------+

----------+
Sorry Alex|
----------+

1行の残りの部分に収まらない単語が与えられた場合、プログラムはそれを次の行に配置する必要があります。
コナーオブライエン

このように動作しないのはどこですか?
-wnnmaw

最初の例では、「excellent」を次の行に配置する必要があります。2番目の例では、「superca」も次の行に配置する必要があります。あいまいさがあり申し訳ありません。
コナーオブライエン

1
しかし、「優秀」は次の行には収まりません。どちらの方法でも破る必要があるので、現在書かれている規則とこれがどのように矛盾するかわかりません。あなたが今説明しているように、私は現在コードを実装する方法を知りません
-wnnmaw

2
あなたはそこにポイントを持っています、それそれが言葉で表現されている方法です。私のせいで、あなたのコードは問題ありません。
コナーオブライエン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.