Witam,
Mam problem z zadanie, wyskakuje przekroczono limit… już 3 dzień na tym siedzę i nic. Ktoś może wiedzieć w czym może być przyczyna?
# !/usr/bin/env python3
from collections import OrderedDict
def trening(test):
ciag = [
#0 1 2 3 #pozycja
# liczba
[0, 0, 0, 0], #1
[0, 0, 0, 0], #2
[0, 0, 0, 0], #3
[0, 0, 0, 0] #4
]
dict1 = {
1 : -1,
2 : -1,
3 : -1,
4 : -1
}
wynik = ""
z = ""
max = -1
zmienne = []
#stwórz macierz i przyporządkuj im wartości
for i in range(0, len(test)):
ciag[int(test[i])-1][i%4] += 1
#znajdz pierwszy największą liczbę(max) w którym ciag liczba modyfikacji ciagu jest najmniejsza oraz zapisz zmienne i,j,k,l
for i in range(4):
for j in range(4):
for k in range(4):
for l in range(4):
if i != j and i != k and i != l and j != k and j != l and k != l:
sum = ciag[0][i] + ciag[1][j] + ciag[2][k] + ciag[3][l]
if sum > max:
max = sum
zmienne = [i,j,k,l]
#podstaw zmienne i,j,k,l pod klucze od 1 do 4
for i in range(4):
for j in range(4):
if j == zmienne[i]:
dict1[i+1] = zmienne[i]
# postortuj słownik według values
d2 = OrderedDict(sorted(dict1.items(), key=lambda t: t[1]))
# wyciag ze słownika keys i je dodaj do wyniku
for i in d2:
wynik += str(i)
#stwórz ciąg końcowy z jak >najmniejsza< liczbą zmian
for i in range(0,len(test)):
z += str(wynik[i%4])
return z
z = int(input())
for i in range(1,z+1):
tekst = input()
print(trening(tekst))