Sàng khác biệt


17

Đưa ra một danh sách các số nguyên, tạo mặt nạ boolean sao cho các chỉ số thực có thể được sử dụng để lọc các giá trị riêng biệt khỏi danh sách. Chỉ số nào được chọn là chỉ số thực không quan trọng miễn là chỉ một trong số chúng được chọn cho mỗi bộ chỉ số tương ứng với các giá trị giống hệt nhau.

Đầu vào sẽ là một danh sách các số nguyên không âm trong một định dạng phù hợp với ngôn ngữ của bạn và đầu ra sẽ là một danh sách các giá trị boolean theo thông số kỹ thuật ở trên. Bạn được phép sử dụng các định nghĩa của riêng bạn về các giá trị trung thực và giả trong danh sách đầu ra.

Trong các ví dụ của tôi dưới đây, tôi xác định 1là trung thực và giả dối 0.

[5, 4, 7, 1]  Input
[1, 1, 1, 1]  Output
              Select only the values with with true indicies in the sieve
[5  4  7  1]  Contains zero duplicate values

[5, 9, 7, 5, 6, 0, 5]
[0, 1, 1, 1, 1, 1, 0]
[   9, 7, 5, 6, 0   ]

Các trường hợp thử nghiệm

Khi có một or, có nghĩa là có nhiều đầu ra hợp lệ. Nếu có dấu chấm lửng ...sau dấu or, điều đó có nghĩa là không phải tất cả các kết quả đầu ra có thể được liệt kê.

[0] = [1]

[55] = [1]

[32, 44] = [1, 1]

[0, 0] = [1, 0] or [0, 1]

[9001, 9001, 9001] = [1, 0 , 0] or [0, 1, 0] or [0, 0, 1]

[5, 4, 7, 1] = [1, 1, 1, 1]

[1, 2, 3, 4, 3, 5] = [1, 1, 1, 1, 0, 1] or
                     [1, 1, 0, 1, 1, 1]

[5, 9, 7, 5, 6, 0, 5] = [1, 1, 1, 0, 1, 1, 0] or
                        [0, 1, 1, 1, 1, 1, 0] or
                        [0, 1, 1, 0, 1, 1, 1]

[0, 8, 6, 6, 3, 8, 7, 2] = [1, 1, 1, 0, 1, 0, 1, 1] or
                           [1, 0, 0, 1, 1, 1, 1, 1] or
                           [1, 0, 1, 0, 1, 1, 1, 1] or
                           [1, 1, 0, 1, 1, 0, 1, 1]

[45, 47, 47, 45, 24, 24, 24, 8, 47, 41, 47, 88]
= [1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1] or ...

[154, 993, 420, 154, 154, 689, 172, 417, 790, 175, 790, 790, 154, 172, 175, 175, 420, 417, 154, 175, 172, 175, 172, 993, 689, 993, 993, 790]
= [1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] or ...

Quy tắc

  • Đây là nên giải pháp ngắn nhất sẽ thắng.
  • Nội tích được cho phép!
  • Bạn được phép sử dụng các định nghĩa của riêng bạn về các giá trị trung thực và giả trong danh sách đầu ra. Nếu bạn chọn làm như vậy, xin vui lòng nêu định nghĩa của bạn.
  • Đầu vào sẽ là một danh sách các số nguyên không âm.
  • Bạn có thể tự do lựa chọn giữa việc xuất ra chỉ một trong số các sàng hoặc nhiều hoặc thậm chí tất cả chúng. Miễn là mỗi sàng có giá trị, nó sẽ được chấp nhận.

2
Đối với [0, 8, 6, 6, 3, 8, 7, 2], nên [1, 0, 0, 1, 1, 1, 1, 1]được thêm vào danh sách đầu ra hợp lệ?
đồ học

định nghĩa riêng của bạn về các giá trị trung thực và giả mạo đề cập đến ngôn ngữ hoặc chúng ta có thể chọn tự do? Họ có phải nhất quán không?
Dennis

@atlasologist Cám ơn bắt typo
dặm

@Dennis Bạn có thể tự do xác định các giá trị boolean của riêng mình, chúng không phải giống với ngôn ngữ bạn chọn, nhưng bạn phải nhất quán với các định nghĩa của riêng bạn. Thay vì 1 và 0 cho đúng và sai trong các ví dụ của tôi, tôi có thể đã thực hiện các giá trị âm là giá trị sai và không âm (không hoặc dương) là đúng.
dặm

OK, cảm ơn đã làm rõ. Bằng cách nhất quán, tôi có nghĩa là nếu phải có một giá trị trung thực duy nhất hoặc nếu có thể có một vài.
Dennis

Câu trả lời:


11

MATL, 7 6 4 byte

Lưu 1 byte nhờ @Luis
2 byte được lưu nhờ @Dennis

&=Rs

Chúng tôi xác định 1là trung thực và tất cả các giá trị khác là falsey

Dùng thử trực tuyến

Tất cả các trường hợp thử nghiệm

Giải trình

    % Implicitly grab input array
&=  % 2D array of equality comparisons
R   % Get the upper triangular portion
s   % Sum down the columns
    % Implicitly display the result

Ít hơn 1 byte:&=Rs1=
Luis Mendo

@LuisMendo Ha Tôi thực sự chỉ chơi với cách tiếp cận đó!
Suever

2
OP đã làm rõ ý nghĩa trung thực và giả dối trong thử thách này. Nếu bạn xác định 1 là trung thực và mọi thứ khác là giả, bạn có thể bỏ qua l=.
Dennis

Công dụng tuyệt vời. Mục đích là để tránh phải thêm một bước lọc và bây giờ bạn đã khớp với giải pháp Dennis 'Jelly.
dặm

9

Thạch , 4 byte

ĠṪ€Ṭ

Ủng hộ lần xuất hiện cuối cùng. Hãy thử trực tuyến! hoặc xác minh tất cả các trường hợp thử nghiệm .

Làm thế nào nó hoạt động

ĠṪ€Ṭ  Main link. Argument: A (array)

Ġ     Group; paritition the indices of A according to their corresponding values.
 Ṫ€   Tail each; select the last index of each group.
   Ṭ  Untruth; generate a Boolean array with 1's at the specified indices.

Điều này sẽ không cắt bỏ các số 0 ở cuối?
Leaky Nun

2
Không thể có số 0 ở cuối, bởi vì chúng tôi chọn lần xuất hiện cuối cùng của mỗi số nguyên duy nhất.
Dennis

Thật khéo léo .
Nữ tu bị rò rỉ

8

Trăn 3, 47 35 39 36 byte

lambda n:[n.pop(0)in n for x in n*1]

Chọn mục đầu tiên trong danh sách, kiểm tra xem nó có tồn tại ở nơi khác trong danh sách không và chèn Truehoặc Falsevào danh sách mới.

Đối với chức năng này, False biểu thị một giá trị riêng biệt và Truengược lại ( True=0False=1)

Cảm ơn Dennis vì một tấn byte

Bản gốc, 47 byte:

lambda n:[(1,0)[n.pop()in n]for x in[1]*len(n)]

Thử nó


lambda n:[1-(n.pop()in n)for x in n*1]tiết kiệm một vài byte.
Dennis

3
OP đã làm rõ rằng giá trị trung thực không thực sự phải là sự thật, vì vậy cũng lambda n:[n.pop()in n for x in n*1]hoạt động tốt.
Dennis

Phiên bản mới đã khiến tôi mất một chút cho đến khi tôi nhận ra nó sử dụng các giá trị phủ định như xnor đã làm cho sự thật và giả dối.
dặm

Bạn cần phải làm .pop(0)hoặc mặt nạ đi ra đảo ngược.
xnor

Đó không phải là ý nghĩa của xnor. .pop()xử lý phần tử cuối cùng trước, vì vậy theo thứ tự đảo ngược.
Dennis

7

Bình thường, 6 byte

.eqxQb

Xuất ra một danh sách các bool ( TrueFalse). Kiểm tra từng phần tử trong đầu vào, nếu chỉ mục của nó bằng chỉ số của lần xuất hiện đầu tiên của giá trị. Nói cách khác, đây là kiểm tra xem mỗi phần tử là lần xuất hiện đầu tiên.

Trong mã giả pythonic:

.e      enumerated_map(lambda b,k:    # maps with b as value and k as index
  q       equal(
   xQb      Q.index(b),
            k),                       # implicit lambda variable
          Q)                          # implicit argument to map

Kiểm tra nó ở đây.


6

J , 2 byte

~:

Đây là nơi mà ý tưởng cho thử thách này bắt nguồn từ đó. Nội dung ~:được gọi Nub-Sievetrong J và tạo một danh sách boolean thực hiện thao tác được mô tả trong thử thách. Ở đây, 1đại diện true0đại diện false.


6

05AB1E , 8 byte

Mã số:

v¹ykN>Qˆ

Giải trình:

y         # For each in the array
 ¹yk      # Get the index of that element in the array
    N>Q   # And see if it's equal to the index
       ˆ  # Add to the global array and implicitly output

Sử dụng mã hóa CP-1252 . Hãy thử trực tuyến! .


4

APL, 6 byte

⍳∘⍴∊⍳⍨

Thử nó

Giải trình:

   ⍳⍨  For each character in the string, get the index of its first occurrence
⍳∘⍴     Make a list 1 .. length of input
  ∊    Check if each index is present

4

C #, 63 byte

int[]l(List<int> i)=>i.Select((m,n)=>i.IndexOf(m)-n).ToArray();

Tôi cũng có thể làm cho nó trả về 1 hoặc 0 và có thể tạo tham số và trả về cùng một kiểu cho phép tôi biến nó thành biểu thức lambda không?

một số hướng dẫn sẽ được đánh giá cao

mã cùng loại

    public static List<int>l(List<int>i){
        return i.Select((m,n)=>i.IndexOf(m)==n?1:0).ToList();
    }

nếu bạn xác định sự thật là 0 và giả mạo là bất cứ điều gì khác, bạn có thể thay thế == n bằng -n và trả lại một int []
raggy

đó là một ý tưởng tuyệt vời
downrep_nation

cũng sử dụng hàm bodied biểu thức int [] l (List <int> i) => i.Select ((m, n) => i.IndexOf (m) -n) .ToArray ();
giẻ rách

trời ơi, từ giờ trở đi tiết kiệm rất nhiều byte trong câu trả lời của tôi. cảm ơn bạn rất nhiều
downrep_nation 04/07/2016

Bạn có thể cung cấp một ví dụ trên .NetFiddle không?
aloisdg nói Phục hồi lại

3

Python, 35 byte

f=lambda l:l and[l.pop(0)in l]+f(l)

Sử dụng Truenhư giá trị giả và Falsecho giá trị trung thực. Đánh dấu sự xuất hiện cuối cùng của mỗi yếu tố.

Chỉ chọn phần tử đầu tiên nếu nó không xuất hiện trong số các phần tử còn lại, sau đó đệ quy cho phần còn lại của danh sách miễn là nó không trống. Các l.pop(0)trích xuất phần tử đầu tiên trong khi cũng loại bỏ nó.


3

Võng mạc , 23 byte

(\d+)((?!.* \1\b))?
$#2

Đầu vào là một danh sách được phân tách bằng dấu cách. (Trên thực tế, các định dạng khác cũng [1, 2, 3]sẽ hoạt động miễn là có khoảng trắng ở trước mỗi số trừ số đầu tiên.)

Hãy thử trực tuyến!(Hoạt động trên nhiều trường hợp kiểm tra được phân tách bằng nguồn cấp dữ liệu cùng một lúc.)

Chúng tôi chỉ đơn giản biến từng thành phần thành 0nếu có một bản sao khác của nó sau này trong đầu vào và thành 1khác.


2

PowerShell v2 +, 40 byte

$a=@();$args[0]|%{(1,0)[$_-in$a];$a+=$_}

Tạo một mảng trống $a. Sau đó, chúng tôi đưa danh sách đầu vào thông qua $args[0]và đưa nó vào một vòng lặp |%{...}. Mỗi lần lặp chúng ta chọn một 1hoặc 0từ một giả ba dựa trên việc phần tử hiện tại có ở trong $ahay không. Những lựa chọn được để lại trên đường ống. Sau đó chúng ta thêm phần tử hiện tại vào mảng $a. Các phần tử đường ống được tập hợp lại, và đầu ra là một mảng ẩn.

Thí dụ:

(đầu ra ở đây với một dấu phân cách dòng mới, vì đó là mặc định .ToString()cho một mảng)

PS C:\Tools\Scripts\golfing> .\distinct-sieves.ps1 1,2,3,4,1,3,5,7
1
1
1
1
0
0
1
1

1

JavaScript (ES6), 31 byte

f=a=>a.map((e,i)=>i-a.indexOf(e))

Zero là sự thật và những con số khác là giả.


1

Toán học, 53 31 byte

Nhờ dặm đã cho tôi một ý tưởng đã cứu 22 byte.

s[[;;x++]]~FreeQ~#&/@(x=0;s=#)&

Làm thế nào về việc sử dụng MapIndexedtrên danh sách con trước? MapIndexed[s[[;;#-1&@@#2]]~FreeQ~#&,s=#]&mất 41 byte.
dặm

@miles Ohh, điều đó tốt hơn nhiều (và tôi đã cải thiện nó hơn một chút;))
Martin Ender

Oo đó là một cách tốt đẹp để rút ngắn MapIndexedđối với trường hợp này và bạn thậm chí không cần phải giải nén hoặc giảm các chỉ số
dặm

1

Perl 5

push@o,map{$b=pop@a;(grep{/^$b$/}@a)?1:0}(1..~~@a);

1. ..cung cấp bối cảnh vô hướng, vì vậy bạn không cần ~~. 2. greptrả về sự thật / giả, vì vậy bạn không cần ?1:0. 3. grep/.../,@angắn hơn grep{/.../}@a. 4. Bạn không cần trận chung kết ;. 5. Bạn không cần các dấu ngoặc đơn xung quanh 1..@a. 6. Bạn không hiển thị đầu vào đến từ đâu hoặc đầu ra sẽ đến: xem meta.codegolf.stackexchange.com/q/2447
msh210

1

Java, 96 byte

void s(int[]a){for(int i=0,j,n=a.length,b=1;i<n;a[i++]=b,b=1)for(j=i+1;j<n;)b=a[i]==a[j++]?0:b;}

Sửa đổi các mảng tại chỗ. Ủng hộ sự xuất hiện cuối cùng.

Giá trị trung thực là 1trong khi giá trị falsey là 0.

Xác nhận tất cả các testcase .

Ung dung:

void sieve(int[]a){
    int n = a.length;
    for(int i=0;i<n;i++){
        int b = 1;
        for(int j=i+1;j<n;j++){
            if(a[i] == a[j]){
                b = 0;
            }
        }
        a[i] = b;
    }
}

1

Trên thực tế, 11 byte

;╗ñ`i@╜í=`M

Hãy thử trực tuyến!

Giải trình:

;╗ñ`i@╜í=`M
;╗           save a copy of input in reg0
  ñ          enumerate
   `i@╜í=`M  for each (index, value) pair:
    i@         flatten, swap
      ╜í       first index in input of value
        =      compare equality


1

C ++, 242 byte

Phải thừa nhận là một giải pháp quá mức, vì nó hoạt động trên mọi thùng chứa tiêu chuẩn thuộc bất kỳ loại được đặt hàng nào :

#include<algorithm>
#include<list>
#include<set>
template<class T>auto f(T a){using V=typename T::value_type;std::set<V>s;std::list<bool>r;std::transform(a.begin(),a.end(),std::back_inserter(r),[&](V m){return s.insert(m).second;});return r;}

Ung dung:

(và khái quát hơn nữa)

template<class T>
auto f(T a)
{
    using std::begin;
    using std::end;
    using V=typename T::value_type;
    std::set<V>s;
    std::list<bool>r;
    std::transform(begin(a),end(a),std::back_inserter(r),[&](V m){return s.insert(m).second;});
    return r;
}

Bộ kiểm tra:

int test(const std::list<bool>& expected, const auto& x) { return f(x) != expected; }
#include<array>
#include<chrono>
#include<forward_list>
#include<initializer_list>
#include<string>
#include<vector>
using namespace std::literals::chrono_literals;
int main()
{
    return 0
        + test({},            std::vector<short>{})
        + test({1},           std::array<int,1>{})
        + test({1},           std::vector<char>{55})
        + test({true,true},   std::vector<unsigned>{32,44})
        + test({1,0},         std::list<std::string>{"zero", "zero"})
        + test({1,0,0},       std::vector<long>{9001,9001,9001})
        + test({1,1,1,1},     std::array<char,4>{5,4,7,1})
        + test({1,1,1,1,0,1}, std::initializer_list<std::string>{"one","two","three","four","three","five"})
        + test({1,0,1,0,0},   std::forward_list<std::chrono::seconds>{60s, 1min, 3600s, 60min, 1h});
}

1

TSQL 52 byte

DECLARE @ TABLE(i int identity, v int)
INSERT @ values(1),(2),(3),(4),(3),(5)

SELECT i/max(i)over(partition by v)FROM @ ORDER BY i

Vĩ cầm


1

PHP, 66 62 39 byte

  • chấp nhận tất cả các giá trị nguyên tử (boolean, số nguyên, float, chuỗi)
    ngoại trừ các giá trị ước tính thành false (false, 0, "") và các chuỗi số ("1" bằng 1)
  • cờ xuất hiện đầu tiên

phiên bản mới (chương trình, 37 + 2 byte)
đánh bại Java và (bây giờ là một lần nữa) C #. Thậm chí gần như đánh bại Python bây giờ. Vui mừng.

<?foreach($a as$v)$u[$v]=print$u[$v]|0;
  • +6 cho PHP> = 5.4, + 16-3 cho hàm
  • in danh sách không giới hạn của chèn 0(đúng) và 1(sai) sau
    !print đảo ngược
  • sử dụng: thiết lập register_globals=On, short_open_tags=Onerror_reporting=0trong php.inicho php-cgi
    sau đó gọiphp-cgi -f <filename> a[]=<value1> a[]=<value2> ...;echo"" ;
  • cho PHP> = 5.4: thay thế $abằng $_GET[a](+6), đặt short_open_tags=Onerror_reporting=0
  • hoặc thay thế $abằng array_slice($argv,1)(+19), xóa <?(-2)
    và gọiphp -d error_reporting=0 -r '<code>' <value1> <value2> ...;echo""

phiên bản cũ (chức năng, 62 byte)

function f($a){foreach($a as$v)$u[$v]=1|$m[]=$u[$v];return$m;}
  • trả về mảng của falsetrue và truefalse; (ouput dưới dạng chuỗi rỗng hoặc 1)
    chèn !sau $m[]=để đảo ngược
  • Có một cách khác cho một hàm đủ điều kiện với 55 byte, quá.

thử nghiệm (trên phiên bản cũ)

function out($a){if(!is_array($a))return$a;$r=[];foreach($a as$v)$r[]=out($v);return'['.join(',',$r).']';}
function test($x,$e,$y){static $h='<table border=1><tr><th>input</th><th>output</th><th>expected</th><th>ok?</th></tr>';echo"$h<tr><td>",out($x),'</td><td>',out($y),'</td><td>',out($e),'</td><td>',(strcmp(out($y),out($e))?'N':'Y'),"</td></tr>";$h='';}
$samples=[
    [0],[1],    [55],[1],    [32,44],[1,1],    [9001,9001,9001],[1,false,false],
    [5,4,7,1],[1,1,1,1],    [1,2,3,4,3,5],[1,1,1,1,false,1],
    [5,9,7,5,6,0,5],[1,1,1,false,1,1,false],    [0,8,6,6,3,8,7,2],[1,1,1,false,1,false,1,1],
    [45,47,47,45,24,24,24,8,47,41,47,88],[1,1,'','',1,'','',1,'',1,'',1],
    [154,993,420,154,154,689,172,417,790,175,790,790,154,172,175,
        175,420,417,154,175,172,175,172,993,689, 993,993,790],
        array_merge([1,1,1,false,false,1,1,1,1,1],array_fill(0,18,false))
];
for($i=count($samples);$i--;--$i)for($j=count($samples[$i]);$j--;)$samples[$i][$j]=!$samples[$i][$j];
while($samples)
{
    $a=array_shift($samples);
    $em=array_shift($samples);
    test($a,$em,$ym=s($a));
    $eu=[];foreach($em as$i=>$f)if($f)$eu[]=$a[$i];
    $yu=[];foreach($ym as$i=>$f)if($f)$yu[]=$a[$i];
#   sort($eu); sort($yu);
    test('unique values',$eu,$yu);
}
echo '</table>';

1

Haskell, 29 27 byte

f a=[elem x t|x:t<-tails a]

Sử dụng Falselà đúng, Truenhư giá trị sai:

λ> let f a=[elem x t|x:t<-tails a] in f [5, 9, 7, 5, 6, 0, 5]
[True,False,False,True,False,False,False]

Bạn có thể phải import Data.Listsử dụng tailsnhưng, tryhaskell.org chạy mã như vậy.


Không cần dấu ngoặc đơn bên ngoài. \a->[...]là một chức năng thích hợp. Nếu nghi ngờ, hãy đặt tên cho nó : f a=[...].
nimi

@nimi không thể gọi nó mà không có dấu ngoặc đơn. nhưng đặt tên cho nó hoạt động, cảm ơn rất nhiều.
Will Ness

Tôi không thích sự biện minh này của việc bỏ qua import Data.Listrất nhiều. a. là một độ dốc rất trơn vì bạn có thể đặt bất kỳ số lượng nhập khẩu (hoặc thậm chí cả định nghĩa!) trong cấu hình GHCi của bạn. b. coi tryhaskell.org là một triển khai có thẩm quyền của ngôn ngữ Haskell, nhưng nó thực sự không phải là ngôn ngữ. (Một lần nữa, điều gì sẽ xảy ra nếu tôi tạo ra môi trường thử trực tuyến Haskell của riêng mình đi kèm với tất cả các nhập khẩu và định nghĩa mà người chơi golf có thể muốn? Đó có thực sự là Haskell hay không?)
Lynn

Tôi đã nói ở đây một lần rằng nếu có bất kỳ nền tảng nào chạy mã như vậy, thì mã đó có thể được chấp nhận. Tôi không biết các quy tắc chính xác là gì, tôi đi theo những gì tôi đã nói. Tôi nghĩ là có, nếu trang web của bạn hoạt động 24/7 và chạy Haskell tiêu chuẩn, tại sao không. Nhưng bạn nói đúng về cái đầu tiên, tôi đã loại bỏ nó. Cảm ơn.
Will Ness

1

Perl 5 + Perligata , 343 byte

315 byte, cộng với 28 cho -MLingua::Romana::Perligata

Sử dụng như perl -MLingua::Romana::Perligata foo.pl; đầu vào (từ stdin) và đầu ra (đến đầu ra) là các chuỗi số nguyên được phân tách bằng dấu gạch dưới. Đã thử nghiệm trên Dâu 5.20.2 với phiên bản 0.6 của Perligata; Tôi không biết liệu nó có hoạt động với phiên bản Perligata không.

huic vestibulo perlegementum da.qis _ scindementa da.dum qis fac sic
ao qis decumulamentum da.ao aum tum nullum addementum da.meo io.meo ro.per ium in qis fac sic
si ium tum aum aequalitas fac sic ro I da cis cis
ro nullum tum non rum addementum da.capita bis rum cis
per in bis fac sic hoc tum _ egresso scribe cis

Rõ ràng đây là một tiếng chuông. Trong trường hợp không, hãy chạy nó -MLingua::Romana::Perligata=convertethay vì -MLingua::Romana::Perligataperl thay vì chạy tập lệnh, xuất bản dịch sang Perl thông thường:

 $_ = Lingua::Romana::Perligata::getline (*STDIN );
 @q = split ( '_');
while (@q) { $a = pop (@q );
 $a =  ($a + 0);
my $i ;
my $r ;
for $i (@q) {if ( ($i eq $a)) { $r = 1}
}
;
 $r =  (0 +  ! ($r));
unshift (@b, $r)}
;
for $_ (@b) {print (STDOUT $_, '_')}

Để phân tích mã thông báo, hãy sử dụng -MLingua::Romana::Perligata=discribe .


Ghi chú chơi gôn:

  • Không có giấy tờ (nhưng không ngạc nhiên), bạn không cần một khoảng trống sau . .
  • (Cũng không ngạc nhiên,) scinde không cần đối số thứ hai và sử dụnghoc .
  • Tôi đã phải sử dụng ao aum tum nullum addementum da vì tôi không thể có đượcmorde đi làm.
  • Tương tự, tôi đã sử dụng per ium in qis... ro I da vì tôi không thể nhận đượcvanne đi làm.
  • Thay vì huic vestibulo perlegementum da, tôi đã cố gắng -pMLingua::Romana::Perligata, nhưng cũng không thể làm cho nó hoạt động được.

Chỉ dành cho những cú đá (mặc dù toàn bộ câu trả lời này chỉ dành cho những cú đá):

  • Sau khi làm sạch nó Huic vestibulo perlegementum da. Qis lacunam scindementa da. Dum qis fac sic ao qis decumulamentum da. Ao aum tum nullum addementum da. Meo io. Meo ro. Per ium in qis fac sic si ium tum aum aequalitas fac sic ro I da cis cis. Ro nullum tum non rum addementum da. Capita bis rum cis. Per in bis fac sic hoc tum lacunam egresso scribe cis., Google Dịch cung cấp This court perlegementum grant. QIS gap scindementa grant. While QIS QIS decumulamentum do so ao da. Ao sum and no addementum grant. My io. My ro. Through ium in QIS do so if the sum ium equality do so ro 1 from cis. Ro was not any rum addementum grant. The heads of the bis side. Write, do so as soon as he at that time that in the gap by the Kish was taken..
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.