プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

16
Regex Golfのヒント
言語固有のゴルフのヒントのスレッドと同様に、正規表現を短縮する一般的なトリックは何ですか? ゴルフに関しては、正規表現の3つの使用法を見ることができます。古典的な正規表現ゴルフ(「一致するリストと失敗するリスト」)、正規表現を使用して計算問題と正規表現を解決するより大きなゴルフコード。これらのいずれかまたはすべてに対処するためのヒントを投稿してください。ヒントが1つ以上のフレーバーに限定されている場合は、これらのフレーバーを上部に記載してください。 いつものように、回答ごとに1つのヒント(または非常に密接に関連するヒントのファミリー)に固執してください。そうすることで、最も有用なヒントが投票でトップに上がります。

30
CJamでのゴルフのヒント
CJamは、PPCGユーザーaditsuによって作成されたGolfScriptにヒントを得たスタックベースのゴルフ言語です。 そのため、他の言語固有のヒントの質問に沿って: CJamでゴルフをするための一般的なヒントは何ですか?回答ごとに1つのヒントを投稿してください。
43 code-golf  tips  cjam 

23
Bookworm辞書形式を解析する
私は最近、Bookworm Deluxeの形の懐かしさに夢中になりました。 まだ見たことがない場合は、隣接するタイルを接続して単語を形成することが目的のワードゲームです。文字列が有効な単語かどうかを判断するために、次のような圧縮形式で保存されている内部辞書と照合します。 aa 2h 3ed ing s 2l 3iis s 2rdvark 8s 4wolf 7ves 辞書を展開するためのルールは簡単です: 行の先頭の数字を読み、前の単語の先頭からその数の文字をコピーします。(数字がない場合は、前回と同じ数の文字をコピーします。) 単語に次の文字を追加します。 したがって、最初の単語はでaa、その後にが続きます2h。これは、「の最初の2文字をコピーしてaa追加」を意味hしaahます。次にに3edなりaahed、次の行には数字がないため、3文字を再度コピーしてformにしaahingます。このプロセスは、辞書の残りの部分で継続されます。小さなサンプル入力から得られる単語は次のとおりです。 aa aah aahed aahing aahs aal aaliis aals aardvark aardvarks aardwolf aardwolves あなたの課題は、このアンパックをできるだけ少ないバイトで実行することです。 入力の各行に0-9 は、1つ以上の小文字が続くゼロ以上の数字が含まれますa-z。入力を取得し、出力を文字列のリストとして、または単語を0-9/ 以外の文字で区切った単一の文字列として出力できますa-z。 次に、別の小さなテストケースを示します。この例ではカバーされていないエッジケースがいくつかあります。 abc cba 1de fg hi 0jkl mno abcdefghijk 10l => abc cba cde cfg …
42 code-golf  string 

6
目の視覚化
Xウィンドウシステムに付属している(そして、私が知る限り、まだ付属している)デモプログラムであるXeyesを覚えているかもしれません。その目的は、マウスカーソルに追従する目を描くことでした。 あなたの課題は、ASCIIアートでXeyesを再作成することです。ユーザーがクリックするたびに2つのASCIIアートの目(以下で指定)を描画し、カーソルの方向を指すように瞳孔を移動するプログラムまたは関数を記述します。 上記のGIFは、このゴルフ以外のRuby実装の記録であり、Rubyの最新バージョンで実行できます。また、Xterm制御シーケンスのリファレンスとしても役立ちます。 仕様書 これはcode-golfであるため、バイト数が最も少ないソリューションが優先されます。 これは、アスキー・アート・プログラムがASCII文字-具体的には、文字使用して描く必要がありますので、挑戦-、.、|、'、0、スペース、改行を。1 2 これはインタラクティブなチャレンジなので、プログラムは入力を受け入れ、リアルタイムで出力を描画する必要があります。3 プログラムが入力の受け入れを開始する前に、少なくとも20行20列の空白のキャンバスを初期化する必要があります。ユーザーがキャンバスをクリックするまで、何も描画しないでください。 ユーザーがキャンバス上で4をクリックするたびに、プログラムは以前の出力をクリアしてから、マウスカーソルの位置に最も近い文字を中心に、これらのASCIIの目をキャンバス上に描画します。5 6(以下、✧マウスカーソルを表し、描画しないでください。) .---. .---. | | | | | 0|✧|0 | | | | | '---' '---' 生徒がどのようにカーソルを「指す」かに注意してください。 マウスカーソルがキャンバス上を移動するたびに、プログラムは瞳孔を再描画して、カーソルの方向を指し続けるようにします。例:7 ✧ .---. .---. | 0| | 0| | | | | | | | | '---' '---' 瞳孔ポインティング 次のように、各目の内側の9文字の位置を列挙したとします。 .---. |678| |591| …

16
どれくらい小さくできますか?
整数正始まるN、整数最小見つける「N繰り返し割ることによって計算することができるNを(ベース10)は、その数字のいずれかです。選択された各桁は、1より大きいNの除数でなければなりません。 例1 N = 230の期待される出力はN '= 23です。 例2 N = 129528の予想される出力はN '= 257です。 最適でないパスに注意してください! 129528/9 = 14392で開始することもできますが、可能な限り最小の結果にはなりません。最初に9で割った場合にできる最善の方法は次のとおりです。 ルール 入力は、任意の妥当な形式(整数、文字列、数字の配列など)で取得できます。 これはcode-golfなので、バイト単位の最短回答が勝ちです! テストケース 1 --> 1 7 --> 1 10 --> 10 24 --> 1 230 --> 23 234 --> 78 10800 --> 1 10801 --> 10801 50976 --> 118 129500 --> …

30
これらの文字列を明確にする
このコメントチェーンに触発されて ... 私enklactはこの挑戦から抜け出したいが、私はできない... @ETHproductions to enklact(v):一意の要素で構成されるサブセクションを使用してルックアップテーブルを実装します。 Enklactingは、ルックアップテーブルを圧縮する非常に便利な方法です。たとえば、次の色のリストがあるとします。 red green blue yellow purple orange 入力として色を取り、このリストのインデックスを返すことができるようにしたい場合は、明らかに簡単な方法があります。 ["red", "green", "blue", "yellow", "purple", "orange"].index(input()) しかし、より少ないバイトでこれを行う方法があります: "rgbypo".index(input()[0]) これは、各文字列の最初の(または0番目の)インデックスが一意であるため機能します。この例は明らかですが、時には少し難しい場合があります。このリストのルックアップテーブルを作成する場合はどうなりますか? Sweet Onion Chicken Teriyaki Oven Roasted Chicken Turkey Breast Italian BMT Tuna Black Forest Ham Meatball Marinara この場合、これはできません。 "SOTITBM".index(input()[0]) a 'T'で始まる2つの異なる入力、つまり「Tuna」と「Turkey」があるためです。別のインデックスを見る必要があります。各文字列の4番目のインデックスを見ると、それらはすべて一意であることがわかります。だから私たちはこれを行うことができます... "enklact".index(input()[3]) この場合、「enklaction string」は「enklact」です。 それが今日の挑戦につながります... 文字列のリストを指定すると、有効なenklaction文字列が返されます。または、言い換えると、文字列のリストを指定すると、各文字が一意であり、各文字列のi番目の文字を結合して文字列が形成される新しい文字列を返します。 有効なenklaction文字列が存在しない場合は、代わりに空の文字列または一貫した偽の値を送信する必要があります。いつものように、関数または完全なプログラムのいずれかが許可されており、入出力形式は許容範囲内です(理由はありますが)。 …
42 code-golf  string 

21
スタック取引所証券取引所-V3
注意:このチャレンジは終了しました:私はリーダーボードを更新しなくなり、受け入れられた回答を変更しません。ただし、必要に応じて、コントローラーを自由に実行し、リーダーボードを自分で更新できます。 チャットに参加してください! 前書き こんばんは、トレーダー!あなたはすべてゴルフ会社PPCGのトレーダーです。あなたの仕事は、できるだけ多くのお金を稼ぐことです。 チャレンジ できるだけ多くのお金を稼ぐことを目的として、Stack Exchange Stock Exchangeで株式を売買するプログラムを作成します。 ゲームプレイ すべてのプレイヤーは、自分の銀行で5株と100ドルで始めます。ゲームは常に10ドルの株価で始まります。 各ゲームには1000ラウンドがあり、最初のラウンドはラウンド1です。各ラウンドでは、プログラムに入力として4つの引数が提供されます。現在の株価、所有する株式数、所有する金額、およびラウンド番号(1から始まる)。 たとえば、私のプログラムがtest1.py、株価が100、保有株式数が、保有3金額が1200、ラウンド数がの576場合、私のプログラムは次のように実行されます。 python test1.py 100 3 1200 576 ラウンドでは、各プレイヤーに与えられる株価は同じになります。これはラウンドの終わりまで変わりません。 応答として、プレーヤーはコマンドを印刷する必要があります。次の2つのオプションがあります。 購入共有:このコマンドは次のように与えられているbn場所nあなたが購入したい株式数です。たとえば、100株を購入する場合、次のように出力します。 b100 株式を購入する場合、最大1000ドルの当座借越が許可されます。この当座借越を超える十分な株式を購入しようとすると(銀行の残高が$ -1000を下回ります)、破産と宣言されます。これは、すべての株式を失い、残高が50ドルに設定されることを意味します。 破産しても株価は指揮の影響を受けません。 (残高が$ -1000であれば、破産していません。ただし、残高が$ -1001であれば、破産しています) 売る株式:このコマンドは次のように与えられているsn場所nあなたが販売することを希望する株式数です。たとえば、100株を販売する場合、次のように出力します。 s100 所有する株式よりも多くの株式を売却することはできません。これを行おうとすると、リクエストは拒否され、ラウンドはスキップされます。 ラウンドをスキップして何もしない場合は、b0またはのいずれかを出力しますs0。 負の数の株式や整数以外の数の株式を売買しようとすると、リクエストは拒否されます。 5ラウンド後、各ラウンドの終わりに、すべてのプレーヤーに配当が支払われます。その価値は、最後の5ラウンドの平均株価の5%です。 どのように機能しますか? 当初の株価は10ドルです。各ラウンドの終わりに、式を使用して再計算されます: 新しい株価= 古い株価+ (購入した株式数- 売却した株式数)New Share Price=Old Share Price+(Number of shares bought−Number of shares …

30
スクラブルスコアラー
チャレンジ: 大文字または小文字の文字列を入力として(オプション)、英語のスクラブルのゲームで文字列が取得するスコアを計算します。 ルール: 各文字のスコアは次のとおりです(他のバージョンのゲームがある場合でもこれを使用します)。 1 point: E, A, I, O, N, R, T, L, S, U 2 points: D, G 3 points: B, C, M, P 4 points: F, H, V, W, Y 5 points: K 8 points: J, X 10 points: Q, Z 文字列のスコアは、使用される各文字のスコアの合計です。利用可能なタイルがたくさんあると仮定することができるので、長い単語、および同じ文字の多くを含む単語は有効な入力です。 テストケース: ABC -> 7 PPCG …

20
Vimを終了するにはどうすればよいですか?
VimはUNIXシステム用の優れたテキストエディターですが、終了するのが難しいことで有名です。 :qVimを終了するために出力する完全なプログラムを作成します。その後、bashプロンプト(終了の場合)またはエラー(未保存の変更がある場合)が表示されるため、1行の入力を読み取る必要があります。 bashプロンプトは次のようになります。 E37@vimmachine: /var/override) エラーはこれになりますが: E37: No write since last change (add ! to override) bashプロンプトが与えられると、プログラムの作業は完了し、それ以上の出力は行われないはずです(空白を除く)。 エラーが発生すると、プログラムは、出力:q!(保存せずに終了する、または保存して終了する)をランダムに(つまり、それぞれの可能性が0以外の確率で選択される)出力:xする必要があります。 これはコードゴルフなので、各言語で最少のバイトが勝ちます!
42 code-golf 

6
マフィアを遊ぼう!
マフィア(ウェアウルフとも呼ばれます)は、おおよそ次のようにプレイするパーティーゲームです。 ゲームは0日目から始まりnますn。毎日が夜になります。毎晩夜nが来るとn+1。すなわちD0, N0, D1, N1, D2, N2... 0日目の夜明けに、ホストは特定の役割を満たすためにプレイヤーを密かに選択します。 一部のプレイヤーがマフィアになります。毎晩、すべてのマフィアがプレイヤーを選びます。翌日の夜明けに、ほとんどのマフィアが選んだプレイヤーが殺されます。それらはゲームから永久に削除され、その役割は公開されます。マフィアアライン。 一部のプレイヤーは警官になります。毎晩、各警官はプレイヤーを選択します。翌日の夜明けに、警官はプレイヤーのアライメントを認識します。村に沿って。 一部のプレイヤーは医者になります。毎晩、各医師はプレーヤーを選択します。このプレイヤーがマフィアが殺すことを選んだプレイヤーと同じ場合、その夜のマフィアの行動はキャンセルされます。村に沿って。 別の役割に選ばれていないプレイヤーはすべて村人です。村人には、町全体で共有されていない能力はありません。村に沿って。 0日目を除く毎日、町全体(つまり、すべての生きているプレイヤー)がプレイヤーに投票します。一日の終わりに、そのプレイヤーはゲームから削除され、その役割が明らかになります。(0日目は、誰もが日暮れまで冷えます。) いずれかの時点でマフィアが残っていない場合、村に所属するすべてのプレイヤーが勝者(死者を含む)でゲームは終了します。 いずれかの時点で、村に所属するプレイヤーがマフィアに所属するプレイヤーよりも多くない場合、ゲームはマフィアに所属するすべてのプレイヤーが勝利(死者を含む)して終了します。 このチャレンジの目標は、マフィアで他のボットに勝つためにボットを書くことです! 動作するボットの作り方 あなたが私に提供しなければならないのは、というファイルだけですrun。このチャレンジが行われるディレクトリ構造内で、ボットはここに住んでいます: start controller/ tmp/ players/ # You are here! some_bot/ # Let's pretend you're some_bot. to_server from_server players run # This is what you give me mafia-game-bot/ skynet/ このrunファイルは、実行されると、ボットにその働きをさせます。このファイルはコマンドライン引数などを必要としないことに注意することが重要です。として正確に実行され./runます。別の方法で実行する必要がある場合は、次のようなことを実行して回避する必要があります。 real_bot.py #!/bin/python2 # code …

4
f(g(x))は減少し、g(f(x))は増加
この課題のために、f∘gは厳密に減少する関数であり、g∘fは厳密に増加する関数であるように、整数に2つの関数fとgを実装する必要があります。つまり、任意の2つの整数a <bを取る場合、f(g(a))> f(g(b))およびg(f(a))<g(f(b))となります。fとgに個別に制限はありませんが、それぞれが1つの整数を別の整数にマッピングする必要があることを除きます。 fとgの簡単な説明と、それらに必要なプロパティがある理由の引数を含めてください。 クレジット:この課題は、2011年のルーマニアの数学修士大会(整数ではなく実数で求められます)の問題に触発されました。ネタバレが本当に必要な場合は、何を検索すればよいかがわかります。 ルール この課題における「関数」という言葉は、1つの整数を別の整数にマッピングするという数学的な意味で解釈する必要があります。2つのプログラムまたは2つの関数を記述し、通常どおり入力を受け取り、出力を提供する標準的な方法を使用できます。実際の整数変数の代わりに整数の文字列表現を使用できますが、入力と出力のタイプは同一である必要があります。そのため、間にタイプを手動で変換することなく関数を構成できます。概念的には、fとgはまだonの関数である必要があるため、同じ数字またはそのようなものの2つの異なる文字列表現を使用して不正行為を行うことはできません。 ことを忘れないでください関数は無名のかもしれ彼らの名は、それ自体またはユーザーが定義する別の機能で必要とされていない限り、。関数の一方または両方に名前を付ける場合、それらが同じプログラムに存在すると仮定して、それらの実装(def f(x): return -g(x)Pythonなど)で相互に参照できるようにします。 通常の整数オーバーフロールールが適用されます。ソリューションは、すべての整数がデフォルトで制限されていない仮想バージョン(または実際のバージョン)の任意の大きな整数で動作できる必要がありますが、実装によりプログラムが実際に失敗する場合それほど大きな整数をサポートしていなくても、ソリューションは無効になりません。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 これはcode-golfであるため、スコアは両方の関数のバイト数の合計であり、最短の有効な回答が勝ちます。

30
私はエンジニアですか?
最近、信号機のタイミングを研究している電気技師は、オレゴン州から自分自身を技師と称したことで500ドルの罰金を科されました。 入力として米国の州を表す2文字の文字列を指定すると、出力は次のようになります。 I am not an engineer州がオレゴンの場合(OR) I am an engineer 州が他の米国の州である場合 What is an engineer? 他の入力が与えられた 出力には先頭の空白が含まれていない場合がありますが、必要に応じて末尾の空白が含まれている場合があります。 入力は常に2つの大文字であると想定できます。 これは、米国の50の州の略語すべてのリストです。 AL, AK, AZ, AR, CA, CO, CT, DE, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, …

2
Prison Architect、ASCIIバージョン
ASCII文字を使用した刑務所の図を次に示します。 +------------------------------+ | | | X X | | | | D D | | | | | | X X X | | | +------------------------------+ 壁は、パイプキャラクター|、ダッシュ-、および+コーナーと交差点の柱で構成されています。のマークが付いた2つのドアもありますD(常に左右の壁にあります)。刑務所はでマークされた怖い人でいっぱいXです。 目標は、次の条件を満たす壁を構築することです。 各人は独房に閉じ込められています。 2つのドアの間には廊下が走っています。 各セルには、メインの廊下に直接接続されているドアが1つだけ含まれています。 刑務所内のすべてのスペースは、独房と廊下によって使用されています。 各セルには人が含まれています(つまり、空のセルはありません)。 廊下は単一のパスであり、分岐せず、常に1文字幅です。上記の刑務所の解決策は次のとおりです。 +---------+--------------------+ | | | | X | X | | | +--------+ +------D--+-----D-----+ D D +---D--+ …

27
一番近い悪魔を見せて
悪魔の数は、10進表現が6のみで構成される正の整数です。悪魔の数のリストは、6、66、666、6666で始まります。 正の整数を指定すると、最も近い悪魔の数が出力されます。2つある場合は、大きい方を出力します。 テストケース: n output 1 6 2 6 3 6 6 6 35 6 36 66 37 66 100 66 365 66 366 666 666 666 999 666 これはcode-golfです。バイト単位の最短回答が優先されます。

14
付帯条件なし!
イントロ 壁には3本の釘があります。あなたは、両端で額縁に固定された文字列を持っています。写真を吊るすために、あなたは爪にひもをからませました。しかし、写真を手放す前に、爪がどのように紐で包まれているかを見て、画像が落ちるかどうかを予測できますか? 最初の例では、画像は落ちません。2番目の例では、写真が落ちます。 チャレンジ N爪の周りの文字列のパスを指定して、画像が落ちるかどうかを決定します。絵が落ちそうな場合は真実の値を返し、そうでない場合は偽の値を返します。 詳細 爪と写真は通常のN+1-gonに配置され、写真が下にあると仮定できます。 ロープに結び目がないと仮定できます。つまり、ロープを2つの端の一方から連続して巻き付けることができます。 各爪はアルファベットの文字で時計回りに列挙されます。最大26本の爪(AZ)があると仮定できます。 爪の周りの時計回りのラップは小文字で示され、反時計回りのラップは大文字で示されます。 上からの最初の例はとしてエンコードされBcA、2番目の例はとしてエンコードされCAbBacます。 傾いた読者の場合:この問題は、釘のセットによって生成されたフリーグループの要素がアイデンティティであるかどうかを判断することと同じです。つまり、固定点に到達するまで、aAまたはAa固定点に達するまで、部分文字列を繰り返しキャンセルすれば十分です。固定小数点が空の文字列の場合、これは中立要素です。それ以外の場合はそうではありません。 例 Picture will fall: Aa CAbBac aBbA DAacAaCdCaAcBCBbcaAb ARrQqRrUuVHhvTtYyDdYyEKRrkeUWwua AKkQqEeVvBESWwseYQqyXBbxVvPpWwTtKkVHLlWwNBbAanYYyyhWwEJZUuNnzjYyBLQqQqlEGgebeEPLlTtZzpUuevZzSsbXSGgsUuLlHhUQquPpHUuFfhTZzIitGgFAaBRrBbbYXxOoDZTDdtzVvXxUudHhOVvoUuXKkxyBEeLlbFfKkHhfVAaQqHAaJjODdoVvhSsZzMZzmPpXNBbnxBbUuSSsUuDRrdNnUusJDIiUuIidCEGgeMmcLlDPOopdTEeQqCAETtNnYyeGUuPEFfSsWwHheAaBbpgCcOHUuhAaCcoEFBbfeaFHhfcCFFffNncGFfgtjMVUuKAakvKkXxLlTMmtmOFfoUuXSsYZzLXxlyxUuRPZzTtprSsWwRrPLlpGgMmKRrDHhdRCcUurYNnKCckykXJjxWwUSsJjKkLlKkuBbBbOoWwWwIiUuPDdBbCcWHBbCFfcDdYBbLlyVvSsWGgEewCchDdYywAaJjEepPpPpQXxZzFfLGXxglNnZzYDdyqCcKWXxwXxQqXTtxkFfBSSAasTFftZzsXGgxSsLlLlbZzAaCCccXVvYyxTIiOoBbFftCVQqDdBbGgAavQqKkDPpKTCctRrkdcvAaQWOowLOolqVMmvZAaHCBbcPphIiRKkrLlzFMOomDIiXJjIixMmdNnMHhmfNTtIiKkSDdTtsVvHhnAaNSVvTUutNnXxsGIiXxPpPHhUupgNnAaAAOoaaIiHJjhVvLlnYyXxQqSsTtKJjkBbNnVvEYCcFfMHGghBbmNnEeJTtjJjWYywyeNWwDIiZYyzOodnMQqmVvCcQqxVvGNnEeNBbngVvUGgYyBbDdVvIiAAaauPpQKDdEekNnVLlvHhGSDIidPZzpsPCcpgQqKkQqNOonLlIiLlJjqPAaPXxTtppYyCPpHhCIicARBbracXxWwXEVUuUuGgZHhzBSsbvGgFfeVvxLlNKknWwBLlIibWOowNnRSsrSEeKAakOosLZzZRrHhzTtTFfUuNnOKkotXxTtla Picture will not fall: A BcA ABCD aBaA bAaBcbBCBcAaCdCaAcaCAD ARrQqRrUatuVHhvTYyDdYyEKRrkeUAua AEEeQqNneHhLlAIiGgaECXxcJjZzeJFfVWwDdKkvYWwyTJjtCXxANIinaXWwxcTWwtUuWwMmTBbVWIiFLlWwZzfwPLlEepvWZzwKkEYEeWXxwySXTtEexRIiNBbnWAaTtQqNnBMSsWwOombwWwPVPpGPpgYyvDdpBbrQqHhUusKRrDAVvadLlWwOZzokGJCXSSssXxxJPpGIigZzjJjLlOoNRrnPpcMZzmjgJjNDEeQqWKkNTtnSswIidCcnYBGgbyJSsjPpIiMmMmMmSNnWVvwZzIQqLXHhxTPptlisOoeTtTtYMmVvPpyKNnMFfmkXxSVvsCGJjXxgXYJPpjWwQIiXxqyDdxFfDdAaRNnJjrctHBbZzhEQqMmeCcRBbrGgAaAaJNnRrYyWwSDdVvsJOojQGgWWwIBbiwRrqJjjWwOoFPMmDdRrQOoqNnRrDPJjpMmdPpGFfVvWUuwgpWCcNnPpwfUXCcZzJjUSsuXxxUuuRGgHhrSQqJjOosMMTtmHhmKkXxDdLlWwjSUuAaMmKYyksZzVvPZzVEeVvvHhZZOozBbzMmZCczYyGgISsiQqpXxMmXxEMmeRrAGgaGgMOGgomZFfDdzSSssBGPpgbTtBbOoRWWwGgLJjlEeGgLDdRrUulNnZzJjJjUKkuXxFfwATtaZzLVvlWwSsMmrBAaELleGBLFflbgHhbIFfiBbPpTWZzwKkKLASsaTJYyjtBbBbWwIiZCcWwzIiZLlUTtuBbYyBbIizTJjtLTtDOOoBbodBbllSsUGgLlAKkauYykUuUNnPpuDFfAaLNVvnVvlHhdMmBAaBbIiVRrGWOoPpwgWXwKkvJjOoTtYCUucVGgYyLlVvFfvRrMmySsDdbtICZzcNnINSOosDQAaXoxRGgKkrqdZznDdXxZzMGgmiJjNnACcMQqmaNnWZzUOuwTVvAJjSsaRrGgSsTtOMmRroVvRrtAVGgvMmaINniDGCcOogRrWwMVvYFfyTtmTtVvOoOIiodRrGgAxaSsGgiJja

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