ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1002. Телефонные номера

Why doesn't it work? Python 3.6
Послано Kirill 13 окт 2018 23:53
Does not pass even the first test.

Cod:

telefon={"i":1,"j":1,"a":2,"b":2,"c":2,"d":3,"e":3,"f":3,"g":4,"h":4,"k":5,"l":5,"m":6,"n":6,"p":7,"r":7,"s":7,"t":8,"v":8,"u":8,"w":9,"x":9,"y":9,"o":0,"q":0,"z":0}


def sortirovka(nomerok,slovarik):
    nomerok = str(nomerok)
    o=len(nomerok)
    k=[]
    for i in range(len(slovarik)):
        if len(slovarik[i])<=o:
            k.append(slovarik[i])
    return k

def perevod(slovarik):
    k=[]
    for i in range(len(slovarik)):
        p=''
        for o in range(len(slovarik[i])):
            c=telefon[slovarik[i][o]]
            p=p+str(c)
        k.append(p)
    return k

def bolodn(slovara,nomera):
    i=0
    l=[]
    z=0
    u=len(str(nomera))
    while i != len(slovara):
        n = int(len(str(slovara[i])))
        if slovara[i] == str(nomera)[0:n]:
            l.append(slovara[i])
            z+=len(slovara[i])
            nomera = str(nomera)[n:]
        i += 1
    if z==u:
        return l


def sdvig(l, p):
    return l[-p:] + l[:-p]


while True:

    nomer=int(input())
    if nomer == -1:
        break
    if nomer != -1:
        vslovare=int(input())
    i=0

    slovar=[]
    while i!=vslovare:
        c=input()
        slovar.append(c)
        i+=1



    slovar=sortirovka(nomer,slovar)

    slovar1=slovar
    slovar=(perevod(slovar))


    y={}
    for i in range(len(slovar1)):
        d=slovar1[i]
        d1=slovar[i]
        y[d1]=d

    for i in range(1):
        a=0
        z=[]
        while a!=len(slovar):

            k=bolodn(slovar,nomer)
            if k!=None:
                z.append(k)
            slovar=sdvig(slovar,1)
            a+=1

        if len(z)==0:
            print ("No solution.")
        if len(z)>0:

            b=len(z)-1
            min=len(z[0])
            t=0
            i=1
            if (len(z))>1:
                while i!=len(z):
                    if int(len(z[i]))<int(min):
                        min=z[i]
                        t=i
                    i+=1
                x = z[t]
            else:

                x=z[t]

            if len(x)>=1:
                j=''
                for i in range(len(x)):
                    ss=x[i]
                    j+=str(y[ss])
                    if i<len(x)-1:
                        j+=' '
                print (j)