21

Re: Виведення масиву в консоль

koala написав:

FakiNyan, не думали дівчину завести?

та за нею доглядати треба буде, кормити, вигулювати, до лікара водити, якщо щось станеться, нащо мені той гемор?

Подякували: leofun011

22

Re: Виведення масиву в консоль

Зате діти будуть україномовні. Це корисніше для мови, ніж вишукувати збіги в назвах картинок.

Подякували: leofun011

23

Re: Виведення масиву в консоль

koala написав:

Зате діти будуть україномовні. Це корисніше для мови, ніж вишукувати збіги в назвах картинок.

думаєте?

24

Re: Виведення масиву в консоль

можете будь-ласка перевести цей  код:

for i:=0 to n-1 do begin 
      read(A[i]);
      read(B[i]);
      readln(C[i]);
    end;
    for i:=2 to n do begin
      for j:=0 to n-i do begin
        if A[j]>A[j+1] then begin
          tmp := A[j]; A[j]:=A[j+1]; A[j+1]:= tmp;
        end;
        if B[j]>B[j+1] then begin
          tmp := B[j]; B[j]:=B[j+1]; B[j+1]:= tmp;
        end;
        if C[j]>C[j+1] then begin
          tmp := C[j]; C[j]:=C[j+1]; C[j+1]:= tmp;
        end;
      end;
    end;
    if n mod 2 == 1 then begin
      Ac:=A[n div 2];
      Bc:=A[n div 2];
      Cc:=A[n div 2];
    end else begin
      Ac:=(A[n div 2]+A[n div 2 + 1]) div 2;
      Bc:=(B[n div 2]+B[n div 2 + 1]) div 2;
      Cc:=(C[n div 2]+C[n div 2 + 1]) div 2;
    end;

з паскаля на python?
буду дуже вдячний)

25

Re: Виведення масиву в консоль

Можу (сподіваюся, ви мали на увазі "перекласти").
Але виключно за умови, що мій переклад ви нікуди не будете поширювати, а використаєте виключно для навчання на цьому сайті. Вам потрібно, щоб вас забанили на алготестері за крадіжку?

26

Re: Виведення масиву в консоль

TimaMatviiv написав:

можете будь-ласка перевести цей  код
з паскаля на python?
буду дуже вдячний)

Переклав

import bisect

def f(n):
    abc = [ [], [], [] ]
    for i in range(n):
        l = list(map(int, input().split(" ")))
        for k, v in enumerate(abc):
            bisect.insort(v, l[k])
    abc = list(map(list, zip(*abc)))
    n = n - 1
    median = list(map(lambda a, b: (a + b) // 2, abc[n // 2], abc[n // 2 + n % 2]))
    return median

print(" ".join(list(map(str, f(int(input()))))))

Для відправки на algotester потрібно додати лише 2 рядки коду.
1) Замість return median, вертайте суму модулів різниць елементів abc і відповідних елементів median
2) Замінити print(...)

Код тестований, дає правильні відповіді, але надто повільний.
Я на 4-тому тесті не вклався в 2 секунди.

27

Re: Виведення масиву в консоль

koala написав:

Зате діти будуть україномовні. Це корисніше для мови, ніж вишукувати збіги в назвах картинок.


Прихований текст

Зате діти будуть україномовні. Це корисніше для мови, ніж вишукувати збіги в назвах картинок

.

28

Re: Виведення масиву в консоль

Є задача, є код програми

import bisect

n = int(input())
abc = [ [], [], [] ]

for i in range(n):
    l = list(map(int, input().split(" ")))
    for k, v in enumerate(abc):
        bisect.insort(v, l[k])

median = list(map(lambda i: i[(n - 1) // 2], abc))

s = 0
for i in range(n):
    s += sum(map(lambda m, v: abs(m - v[i]), median, abc))

print(s)

Перші 3 тести проходить, а далі не вкладається в ліміт : 2 секунди.
Не розумію чому.

Може хтось знає, то підкажіть. Де тут вузьке місце ?

29

Re: Виведення масиву в консоль

Переписав без

  • map

  • enumerate

import bisect

n = int(input())
abc = [ [], [], [] ]

for i in range(n):
    l = input().split(" ")
    for k in range(3):
        bisect.insort(abc[k], int(l[k]))
n -= 1
median = [ abc[0][(n) // 2], abc[1][(n) // 2], abc[2][(n) // 2] ]
n += 1
s = 0
for k in range(3):
    for i in range(n):
        s += abs(median[k] - abc[k][i])
print(s)

Те саме.
Схоже проблема в bisect.insort(...)

30

Re: Виведення масиву в консоль

Так, проблема була в bisect.insort.
Замінив на звичайний append, потім додав sort і пройшов всі тести. *DANCE*