平らな地球を旅する


8

平地の世界の座標は、緯度(x)と経度(y)で構成されます。これらは0〜9999の範囲の整数です。ガウス整数によく似ていますが、常に次の表記法を使用して記述されています。

411S 370E

すなわちであり、SまたはN緯度に付加し、EまたはW2つのコンポーネント間の空間(S)と、経度に付加します。

ゴール

空白で区切られた2つの座標を読み取り、それらの合計を出力するプログラム(関数ではない)を記述します。最初の座標は開始点、2番目の座標は変位、出力は結果の位置です。

入出力

この課題は部分的にフォーマットに関するものであるため、入力形式と出力形式を明確に定義するようにします。

推奨される入力形式では、座標コンポーネント間に1つのスペースがあり、先行ゼロはなく、2つの座標間に改行文字があります。プログラムは、優先フォーマットを読み取ることができる必要があります。

出力には、任意の量の空白と先行ゼロを含めることができます。推奨される入力形式と異なる場合、プログラムはこの形式も読み取ることができる必要があります。

明確にするために、入力には追加の書式設定文字を含めることはできません(含めません)。必要なスペースと改行だけ。

得点

これは新しい勝利条件の実験です。数週間以内に回答を受け入れて、勝者を選びます。その後、より適切な回答が出た場合は、回答を変更します。

プログラムのスコアはそのバイト数です。優勝したプログラムは、400バイトより短く、バイト数が最も少ないプログラムですが、最も冗長なプログラミング言語で書かれています。勝者を決定するには:

  • バイト数が400以上のプログラムを削除します(参加できますが、勝つことはできません)。
  • 各プログラミング言語の最短プログラムのみを検討する
  • 最長のプログラムの勝利

ポリグロットは、有効なすべての言語のプログラムと競合します(たとえば、プログラムが両方bashで有効である場合、sh両方の言語のプログラムと競合します)。

テストケース

テストケースでは、最初の2行が入力で、3行目が出力です。

0S 0E
0S 0W
0N 0E

(ゼロの方向は、入力と出力の両方で重要ではありません)


0S 9999E
9999N 9999W
9999N 0E

(最大値)


42S 314W
42N 2718W
0N 3032W

(ゼロの方向は出力では関係ありません)


5555N 8888W
7777S 0E
2222S 8888W

(負の値はありません。符号を変更する必要がある場合は方向を変更してください)


0001N        4545W
0999N        5454W
1000N        9999W

(プログラムが先行ゼロといくつかのスペースを出力する場合、それらはそれらを読み取ることができる必要があります。それらを含まない入力も読み取ることができる必要があります)


8888N 8888W
9999N 9999W

(無効な入力-クラッシュや無限ループを含むすべての動作が許容されます)


5
この採点メカニズムがうまくいくかどうかは本当に興味がありますが、ゲームのように感じます。特に、私はいくつかのクレイジーハードesolang(または私自身の1つ)で正確に399バイトで(次善の)ソリューションを書くことができ、それは簡単にゴルフができても、他の誰もがこの挑戦で私のスコアを打つための言語。
マーティンエンダー2016年

私はそれが今明らかであることを望みます。テキストで「推奨される入力形式」を探し、それでもあいまいな場合はさらに説明を求めてください。
anatolyg 2016年

2
@anatolygその段落は非常に誤解を招くと思います。「柔軟性」と推奨される入力形式について話しますが、すべてのソリューションでその形式を正確に使用する必要があります。柔軟性はどこにあり、このフォーマットの「推奨」は何ですか?この課題については、非常に具体的な1つの形式を要求するのは問題ないと思いますが、仕様では明確にそうする必要があります。
マーティンエンダー2016年

単項入力はありませんか?
Leaky Nun、2016年

1
@MartinBüttner出力に柔軟性があります。それほどではありません。
anatolyg 2016年

回答:


3

ABAP、377 365バイト

REPORT r.PARAMETERS: x TYPE string,y TYPE string.DEFINE m.SHIFT &1 RIGHT CIRCULAR.TRANSLATE &1 USING 'W-E+S-N+'. END-OF-DEFINITION. DEFINE o.&1 = |{ &1 * 1 SIGN = RIGHTPLUS DECIMALS = 0 }|.TRANSLATE &1 using &2. END-OF-DEFINITION.
SPLIT: x AT space INTO DATA(a) DATA(b),y AT ' ' INTO DATA(c) DATA(d). m: a,b,c,d.a = a + c.b = b + d.o: a '-S+N',b '-W+E'.WRITE: a, b.

未ゴルフ:

REPORT r.
PARAMETERS: x TYPE string,
            y TYPE string.
DEFINE m.
  SHIFT &1 RIGHT CIRCULAR.
  TRANSLATE &1 USING 'W-E+S-N+'. 
END-OF-DEFINITION. 

DEFINE o.
  &1 = |{ &1 * 1 SIGN = RIGHTPLUS DECIMALS = 0 }|.
  TRANSLATE &1 using &2.
END-OF-DEFINITION.

SPLIT: x AT space INTO DATA(a) DATA(b),y AT ' ' INTO DATA(c) DATA(d). 
m: a,b,c,d.
a = a + c.
b = b + d.
o: a '-S+N',b '-W+E'.
WRITE: a, b.

400文字以内にするのは実は大変でした。

いくつかのメモ:

  • 元のバージョンADD c TO a.には、私のお気に入りの詳細な説明の1つがありました。
  • 組み込みエディターはこれを1ライナーとして受け入れません。
  • サブルーチンを使用するFORMPERFORM、私はマクロに抑えて、文字カウントを爆発
  • コロンを使用したステートメントのチェーンは、データ宣言以外では推奨されませんが、バイトを節約するために必要でした
  • + 前にスペースがない場合はオフセット演算子であり、コード内に多くのスペースが必要です
  • ABAPは数字の後にスペースを書き込むので、記号を置き換えるだけのトリック
  • RIGHTPLUS式を使用するには、数値である必要があるため、1で乗算する必要がありますが、形式には小数があります。DECIMALS

すごい!聞いたことがない現代の言語!
anatolyg 2016

4

JavaScript(ES6)、118バイト

s=>(g=([i,j,k,l,m,n],[o,p])=>(i=(j>p?-i:+i)+(n>p?-j:+j))<0?-i+o:i+p)(a=s.match(/\d+|\w/g),"SN")+' '+g(a.slice(2),"WE")

4

MATLAB、327 304 296 290 282 276 267 259 255 253バイト

限界に近づいていると思います。私は取り除くことができた、60の51 68 72私はうまくgolfedたと思った答えから74バイトを。=)

Luis Mendoのおかげで、input内部を8バイト削除しましたstrsplit。すべての入力を2つではなく1つのセル配列に取り込むことで、さらに6バイトを削除しました。内部で最後の両方のステートメントを実行することにより、さらに8バイトを削除しましたdisp()charかっこをいくつか削除して6バイトを削除しました。これは、以前の回答の改訂では不可能でした。セル要素を4つの変数に分割すると15バイトのコストがかかりましたが、24バイト節約できたため、9バイト節約できました。dispスキームの改善による8バイトの追加。5*~~sと比較して2バイトを節約し(s>0)*5ます。したがって、4つの新しいバイトが保存されます(sおよびtの場合)。、さらに別の2つのバイトを、この最後の式の反対を節約取る83-5*~sよりも短く、78+5*~~s

ゴルフしたコード:

x=strsplit([input('','s'),' ',input('','s')]);[a,b,c,d]=x{:};f=@str2num;n=@num2str;i=@sign;s=f(a(1:end-1))*i(a(end)-79)+f(c(1:end-1))*i(c(end)-79);t=f(b(1:end-1))*i(b(end)-79)+f(d(1:end-1))*i(d(end)-79);disp([n(abs(s)),83-5*~s,32,n(abs(t)),87-18*~t,''])

同じコードですが、改行があります:

x=strsplit([input('','s'),' ',input('','s')]);
[a,b,c,d]=x{:};
f=@str2num;
n=@num2str;
i=@sign;
s=f(a(1:end-1))*i(a(end)-79)+f(c(1:end-1))*i(c(end)-79);
t=f(b(1:end-1))*i(b(end)-79)+f(d(1:end-1))*i(d(end)-79);
disp([n(abs(s)),78+5*~~s,32,n(abs(t)),69+18*~~t,''])

テストケース:

上記を名前を付けて保存 flat_earth.m

flat_earth
0S 0E
0S 0W
0N 0E

flat_earth
0S 9999E
9999N 9999W
9999N 0E

flat_earth
42S 314W
42N 2718W
0N 3032W

flat_earth
5555N 8888W
7777S 0E
2222S 8888W

flat_earth
0001N        4545W
0999N        5454W
1000N 9999W

3

R、196バイト

ゴルフ標準では、Rはかなり冗長です。どれどれ...

i=scan(,'');l=nchar(i);S=W=`-`;N=E=c;n=as.double(substr(i,1,l-1));d=substr(i,l,l);for(j in 1:4)n[j]=get(d[j])(n[j]);o=c(n[1]+n[3],n[2]+n[4]);cat(paste0(abs(o), ifelse(o<0,c("S", "W"),c("N","E"))))

未ゴルフ:

input = scan(,'')       # Take input from stdin, separating at newlines and spaces
length = nchar(input)   # Get the number of characters in each input
S=W=`-`                 # These two lines create aliases of `-` (the minus function)
N=E=c                   # and c (the concatenate function).
                        # We will later treat the NSEW part of the coordinate
                        # as a call to a function, to ensure that the numbers
                        # are treated with the correct polarity.
numbers = as.double(substr(input, 1, length-1))
                        # Strip the last character off of every coordinate, convert
                        # to integer
directions = substr(input, length, length)
                        # Strip off the numbers and grab the cardinal directions
for(j in 1:4)
    numbers[j] = get(directions[j])(numbers[j])
                        # For our four numbers, treat the cardinal direction as
                        # a function, which is mapped to `-` for south and west, and
                        # `c` for north and east (which is essentially identity)
output = c(numbers[1]+numbers[3], numbers[2]+numbers[4])
                        # Add together the numbers
cat(paste0(abs(output), ifelse(output<0, c("S", "W"), c("N","E"))))
                        # Output the absolute values of the new coordinates, followed
                        # by "S" or "W" if the number is negative and "N" or "E" if 
                        # the number is positive

追加して編集:私は他の回答を見たところ、私のエントリが最も短いものの1つであることに驚いています!おそらく、Rは私が思ったほど冗長ではありません...


2

Java、372バイト

import static java.lang.System.*;class A{public static void main(String[]v){String l=" ",s=console().readLine()+l+console().readLine();Integer i=0,n[]=new Integer[4],y;for(;i<4;i++)n[i]=i.parseInt(s.replaceAll("[A-Z] *",l).split(l)[i])*(s.replaceAll("\\d| ","").charAt(i)==(i%2<1?83:87)?1:-1);i=n[0]+n[2];y=n[1]+n[3];out.println((i<0?-i+"N":i+"S")+l+(y<0?-y+"E":y+"W"));}}

未ゴルフ

import static java.lang.System.console;
import static java.lang.System.out;

class A {
    public static void main(String[] v) {
        String l = " ", s = console().readLine() + l + console().readLine();
        Integer i = 0, n[] = new Integer[4], y;
        for (; i < 4; i++)
            n[i] = i.parseInt(s.replaceAll("[A-Z] *", l).split(l)[i]) * (s.replaceAll("\\d| ", "").charAt(i) == (i % 2 < 1 ? 83 : 87) ? 1 : -1);
        i = n[0] + n[2];
        y = n[1] + n[3];
        out.println((i < 0 ? -i + "N" : i + "S") + l + (y < 0 ? -y + "E" : y + "W"));
    }
}

ノート

  • 名前を付けて保存しA.java、でコンパイルしjavac A.java、で実行しjava Aます。次に、入力行を区切って、またはstdinの2つの別々の入力として入力します。

出力:

0S 0E
0S 0W
0S 0W

0S 9999E
9999N 9999W
9999N 0W

42S 314W
42N 2718W
0S 3032W

5555N 8888W
7777S 0E
2222S 8888W

0001N        4545W
0999N        5454W
1000N 9999W

8888N 8888W
9999N 9999W
18887N 18887W

2

SQL(PostGreSQL 9.4)、305バイト

PREPARE p(char,char)AS
SELECT string_agg(abs(n)||substr('SNNEEW',i+sign(n)::int,1),' ')FROM(SELECT i,sum(to_number(v,'9999')*CASE right(v,1)WHEN'N'THEN 1 WHEN'E'THEN 1 ELSE -1 END)n
FROM(SELECT CASE WHEN v~'[NS]' THEN 2 ELSE 5 END i,v
FROM regexp_split_to_table($1||' '||$2,' ')v)i
GROUP BY i ORDER BY i)g

2文字のパラメーターを取る準備済みステートメントとして実装されます。入力行ごとに1つのパラメーター。

次のように呼ばれます

execute p('0S 9999E','9999N 9999W');

結果の単一の文字列を含む行を出力します。 9999N 0E


2

Java、308バイト

import java.util.*;class x{public static void main(String[]a){Scanner r=new Scanner(System.in);int[]v=new int[2];int l,x,g,i;for(i=5;i-->1;System.out.println(i<3?""+x*g+"ENWS".charAt(i-g):"")){String s=r.next();x=Integer.parseInt(s.substring(0,l=s.length()-1));x=v[i%2]+=x*=s.charAt(l)>80?-1:1;g=x<0?-1:1;}}}

より読みやすいバージョン:

import java.util.*;
class x
{
    public static void main(String[]args)
    {
        Scanner r = new Scanner(System.in);
        int[] v = new int[2];
        for (int i = 5; i-->1; )
        {
            String s = r.next();
            int l = s.length() - 1;
            int x = Integer.parseInt(s.substring(0, l));
            x = v[i%2] += x *= s.charAt(l) > 'N' ? -1 : 1;
            int g = x < 0 ? -1 : 1;
            System.out.println(i < 3?"" + x * g + "ENWS".charAt(i-g):"");
        }
    }
}

ジャワでのゴルフは特別な楽しみです。次の2行のコードは同じですが、最初のコードは短くなっています。

(x<0?-x:x)
Math.abs(x)

コードは、標準入力から4つのトークンを読み取ります。トークンごとに、最後の文字までの部分がに変換されint、最後の文字はオプションで符号を反転します。

次に、2回前に読み取られた値を追加します。Javaは配列を0に初期化するため、最初の2回の反復でこれが正しく行われます。

次に、値をフォーマットして印刷します。ただし、最初の2回の反復では、代わりに空の文字列を出力します(そのため、出力に2つの余分な改行が表示されます)。

いくつかのファンキーな算術演算を使用するため、反復変数(4、3、2または1)と符号(-1または1)を組み合わせて、文字列のゼロベースのインデックスにすることができます"ENWS"


2

Perl 6、130バイト

my (\h,\v)=[Z+] lines».split(' ')».map: {m/(.*)(.)/;$1 eq'S'|'W'??-$0!!$0}
say "{abs h}{h <0??'S'!!'N'} {abs v}{v <0??'W'!!'E'}"

2

Ruby、186バイト

短すぎてすみません。私は最善を尽くしました。

x=-1
puts gets.scan(/\d+\D/).map{|i|i.to_i*(i[-1]=~/[WS]/?-1:1)}.zip(gets.scan(/\d+\D/).map{|i|i.to_i*(i[-1]=~/[WS]/?-1:1)}).map{|a,b|a+b}.map{|s|s.abs.to_s+%w"NNS EEW"[x+=1][s<=>0]}*' '

2

C-267バイト

私はCが長くなるだろうが...それを置くだけでもいいかもしれない。; _;

#include <stdio.h>
#include <stdlib.h>
int main(){int x,y,z,w;char m,n,o,p;scanf("%d%c %d%c",&x,&m,&y,&n);scanf("%d%c %d%c",&z,&o,&w,&p);int a=x*(m<'O'?1:-1)+z*(o<'O'?1:-1),b=y*(n<'F'?1:-1)+w*(p<'F'?1:-1);printf("%d%c %d%c\n",abs(a),a<0?'S':'N',abs(b),b<0?'W':'E');}

2

Befunge-93、240バイト

v
  v$      <
>&>~:" "-!|
vp01p02   <
  v$      <
>&>~:" "-!|
vp03p04   <
  v$      <
>&>~:" "-!|
vp05p06   <
  v$      <
>&>~:" "-!|
 vp07p08  <
v>30g70g40g80g-!
_-:0` v1+
\v\g04_01-*80g
v>10g50g20g60g-!
_-:0` v1+
\v\g02_01-*60g
@>.," ",.,

インタープリターには単一行の入力ボックスがあることに注意してください。優先フォーマットを貼り付けると、改行がスペースに置き換えられます。で整数値を取得&すると、先行スペースとゼロが消費されるため、優先フォーマット&~&~&~&~単独でスタックに読み込むことができます。値を空白行に入れるステップを追加して、一度に1つの座標を取得してベクトルを比較できるようにするには、次の136バイトのプログラム(行の右側のノートを除く)を使用できます。

v                      | blank line to store data
> &10p~20p&30p~40pv    | read and store first vector
 vp08~p07&p06~p05&<    | (backwards) read and store second vector
v>30g70g40g80g-!       | load E/W coordinates
_-:0` v1+              | subtract or add (based on direction)
\v\g04_01-*80g         | change directions if negative
v>10g50g20g60g-!       | load N/S coordinates
_-:0` v1+              | subtract or add (based on direction)
\v\g02_01-*60g         | change directions if negative
@>.," ",.,             | output

キャッチ:出力は整数の後に追加のスペースを強制するので、優先形式で出力することは不可能です。たとえば、出力はでは1000 N 9999 Wなくとして表示されます1000N 9999W。入力で各座標の方向の前のスペースをチェックして無視するには、4つの追加ループ(各座標に1つ)が必要です。単一のループを以下に示します。

  v$      <            | throw out " " and repeat
>&>~:" "-!|            | (start read number) get and check character
vp01p02   <            | store

結果のプログラムには、入力の任意の場所(数字の間を除く)に複数のスペースを含めることができます。

入力例: 0001 N 4545 W 0999 N 5454 W


1

Lua、333 328バイト

高レベルの無効な入力システムと、繰り返し使用できる完全に革新的な無限ループを備えています。

m=math.abs p=print::e::c={}for i=1,2 do for s in io.read():gmatch'%S+'do c[#c+1]=s end end for i=1,4 do n=c[i]:sub(1,-2)d=c[i]:sub(-1,-1)c[i]=d==("N"or"E")and n or-n end x=c[2]+c[4]y=c[1]+c[3]a=m(x)b=m(y)if(a or b)>9999 then p'Invalid input\n'goto e end x=x<0 and a.."W"or a.."E"y=y<0 and b.."S"or b.."N"p(y.." "..x.."\n")goto e

楽しい ;)

編集:保存された名前の変更から5つのバイトmath.absとしてmprintとしてp


1

PHP 291バイト。

<?php $E=0;$N=0;$l=explode(PHP_EOL,STDIN);foreach($l as $i){ $x=explode(' ',$i); $s=(substr($x[0],-1,1)=='N')?1:-1; $N=$N+((substr($x[0],0,-1)*$s));$s=(substr($x[1],-1,1)=='E')?1:-1;$E=$E+((substr($x[1],0,-1))*$s);}$l=($E<=0)?'W':'E';$u=($N<=0)?'S':'N';echo'<br/>'.abs($N).$u.' '.abs($E).$l;

賢いことは何もせず、問題を突き抜けるだけです。

<?php 
$lines = explode(PHP_EOL, STDIN);
foreach ($lines as $line) {
    $bits = explode(' ', $line);
    $sign = (substr($bits[0],-1, 1) == 'N')? 1 : -1;    
    $N = $N + ( (substr($bits[0],0,-1) * $sign) );
    $sign = (substr($bits[1],-1, 1) == 'E')? 1 : -1;    
    $E = $E + ( (substr($bits[1],0,-1)) * $sign );
}
$side = ($E<=0)?'W':'E';
$up = ($N<=0)?'S':'N';
echo '<br />'.abs($N).$up.' '.abs($E).$side;

ルールには、少なくとも2つのエントリを持つ言語のみが勝つことができることを示す追加の句が必要です。


1
私は291を数えます。しかし、あなたの内訳は205まで下げることができます。素晴らしいアプローチです。
タイタス

:-(あなたは全く正しいです夜遅くされている必要があります。。
ポールDrewett

インスピレーションをありがとう。
タイタス

1

PHP、169バイト

@Paul Drewettに触発された:

<?for($i=2;$i--;$e+=$p[1]*(substr($p[1],-1,1)<W?:-1))$n+=($p=explode(' ',trim(fgets(STDIN))))[0]*(substr($p[0],-1)<S?:-1);echo abs($n),'NS'[$n<0],' ',abs($e),'EW'[$e<0];

壊す

for($i=2;$i--;                                  // loop twice
    $e+=$p[1]*(substr($p[1],-1,1)<W?:-1)        // add longitude to result
)
    $n+=
        ($p=explode(' ',trim(fgets(STDIN))))    // read line, split at blank
    [0]*(substr($p[0],-1)<S?:-1)                // add latitude to result
    ;
echo abs($n),'NS'[$n<0],' ',abs($e),'EW'[$e<0]; // print result

PHP、206 197 195バイト

文字通り、「moste verbose」はおそらくMathematicaまたはMathlabでしょうか?

<?function i(){preg_match('#\d+(.) (\d+)(.)#',fgets(STDIN),$m);return[$m[0]*($m[1]<S?:-1),$m[2]*($m[3]<W?:-1)];}echo abs($v=($a=i())[0]+($b=i())[0]),'NS'[$v<0],' ',abs($v=$a[1]+$b[1]),'EW'[$v<0];
  • 出力はかなりフォーマットされておらず、トレーニング用の改行でさえありません
  • 結果が大きすぎるために大きな数を出力します

さて、これのサイズを2倍にするにはどうすればよいですか。

壊す

function i()
// read a pair of coordinates from STDIN, return signed values
{
    // read line from STDIN and take (number,character,number,character) from it
    // will produce something like ["111N 222E","N","222","E"]
    preg_match('#\d+(.) (\d+)(.)#',fgets(STDIN),$m);
    return[
        // using a numerical operation on $m[0] casts the string to number (int in this case)
        $m[0]*($m[1]<S?:-1) // convert latitude to signed int: multiply with -1 for $m[1]=='S'
        ,
        $m[2]*($m[3]<W?:-1) // convert longitude to signed int
    ];
}
$a=i();$b=i();  // read coordinates from STDIN
echo            // output:
    abs($v=$a[0]+$b[0])     // 1. unsigned sum of latitudes
    ,'NS'[$v<0]             // 2. direction depending on sign
    ,' ',                   // 3. delimiter
    abs($v=$a[1]+$b[1]),    // 4. unsigned sum of longitudes
    'EW'[$v<0]              // 5. direction depending on sign
;

1

GolfScript -111バイト

{~)}:"S":"E";{}:"N":"W";"
"/~[{' '/[{.-1<~\-1>`~}/]\}2*]zip[{{+}*}/](.0<{abs'S'}{'N'}if' '+@~.0<{abs'E'}{'W'}if

説明

{~)}:"S":"E";    # Aliases these as *-1
{}:"N":"W";      # Alieses to nop
"\n"/~           # Splits lines
[{' '/[{.-1<~\-1>`~}/]\}2*]zip    # Parses the input as vectors and applies the aliases
[{{+}*}/]                         # Vector sum
(.0<{abs'S'}{'N'}if' '+@          # Formats output
~.0<{abs'E'}{'W'}if

0

Pythonの2.7 - 232の 175バイト

すべてのテストケースで機能します。常にNまたはWを0に挿入します。私よりも優れたPythonゴルファーが、バイトを少し削ることができると確信しています。

f=(raw_input().split(" ")+raw_input().split(" "))
for x in range(4):
 i=f[x]
 if "S" in i or "E" in i:i="-"+i
 f[x]=int(i[:-1])
n=f[0]+f[2]
q=f[1]+f[3]
print str(abs(n))+("S" if n<0 else "N"),str(abs(q))+("E" if q<0 else "W")

編集

@ mbomb007と@Titusのすばらしいヒントに加えて、2つのraw_inputをスペースと組み合わせて、スペースを指定せずにスペースで分割する1つの.split()を使用できるという事実を発見して、強力な57バイトを獲得しました。アルゴリズムは同じですが、はるかに優れています。

f=(raw_input()+" "+raw_input()).split()
for x in 0,1,2,3:
 i=f[x]
 if i[-1]in"SE":i="-"+i
 f[x]=int(i[:-1])
n=f[0]+f[2]
q=f[1]+f[3]
print`abs(n)`+"NS"[n<0],`abs(q)`+"WE"[q<0]

1
置き換える...str(x)......`x`...、置き換える("E" if q<0 else "W")"WE"[q<0]
mbomb007


@ mbomb007に感謝します。とても有難い。ヒントページをチェックして、他に何ができるか見てみましょう。
ElPedro 2016


1
"S" in i or "E" in iきっと書かれるi in "ES"か似ていることができます。
タイタス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.