пʼятниця, 2 березня 2018 р.

Резюме

Резюме

Резюме


Персональні дані

ФІО: Сопін Василь Сергійович

Дата народження: 25.10.1999

Інформація про освіту

  • Запорізький національний технічний університет



  • Малобілозерська школа “Дивосвіт”

  • Професійні навички

    1. Володіння англійською моваю на розмовному рівні
    2. Професійно граю в кіберспортивні ігри

    Контактна інформація

    Email: letun1000@i.ua

    Email 2: vasya.sopin.999@gmail.com

    Mobile phone: +380682412564

    Skype: Василь Сопін

    Viber: VASYA Sopin

    неділя, 26 березня 2017 р.

    4.2 Base RLE decimal

    a = input()
    sym_index,sym,d = -1,[],""
    sym_count = [0 for i in range(len(a))]
    for i in range(len(a)):
        if a[i]==d:
            sym_count[sym_index]+=1
        else:
            sym+=a[i]
            sym_index+=1
            sym_count[sym_index]+=1
            d=a[i]
    for i in range(len(sym)):
        if sym_count[i]!=1:
            print(str(sym_count[i])+sym[i],end = "")
        else:
            print(sym[i],end = "")

    неділя, 5 березня 2017 р.

    5.20 Game of life

    Напишите программу, вычисляющую следующее состояние поля для Game of life.
    Поле представляет собой прямоугольник, причём для крайних клеток поля соседними являются клетки с противоположного конца (поле представляет собой тор).
    Формат ввода:
    На первой строке указаны два целых числа через пробел -- высота и ширина поля.
    В следующих строках подаётся состояние поля. Точка "." обозначает мёртвую клетку, символ "X" − живую.
    Формат вывода:
    Следующее состояние поля, используя те же обозначения, что использовались на вводе.
    Sample Input 1:
    5 5
    .....
    ..X..
    ...X.
    .XXX.
    .....
    Sample Output 1:
    .....
    .....
    .X.X.
    ..XX.
    ..X..
    Sample Input 2:
    5 5
    .....
    .....
    .XXX.
    .....
    .....
    Sample Output 2:
    .....
    ..X..
    ..X..
    ..X..
    .....
    Sample Input 3:
    5 6
    ...XX.
    .XX...
    ..X...
    XX....
    X..XX.
    Sample Output 3:
    .X..XX
    .XX...
    X.X...
    XXXX.X
    XXXXX.
    Правильно.
    1
    a = list(map(int,input().split()))
    2
    def is_life(x,y):
    3
        if b[x][y]=="X":    
    4
            return True
    5
        else:
    6
            return False
    7
    def find_life(x,y):
    8
        sum=0
    9
        if is_life((x+1)%a[0],y):
    10
            sum+=1
    11
        if is_life(x-1,y):
    12
            sum+=1
    13
        if is_life(x,(y+1)%a[1]):
    14
            sum+=1
    15
        if is_life(x,y-1):
    16
            sum+=1
    17
        if is_life((x+1)%a[0],(y+1)%a[1]):
    18
            sum+=1
    19
        if is_life(x-1,y-1):
    20
            sum+=1
    21
        if is_life(x-1,(y+1)%a[1]):
    22
            sum+=1
    23
        if is_life((x+1)%a[0],y-1):
    24
            sum+=1
    25
        if sum==3 and b[x][y]==".":
    26
            return 'X'
    27
        elif (sum==2 or sum==3) and b[x][y]=="X":
    28
            return 'X'
    29
        else:
    30
            return '.'
    31
    b=[]
    32
    for i in range (a[0]):
    33
        b+=[list(input())]
    34
    for i in range(len(b)):
    35
        for j in range(len(b[i])):
    36
            print(find_life(i,j),end="")
    37
        print()

    7.1 Minesweeper field 1 / 1 ^-^

    Поле для игры сапёр представляет собой сетку размером n×m
    . В ячейке сетки может находиться или отсутствовать мина.
    Напишите программу, которая выводит "решённое" поле, т.е. для каждой ячейки, не являющейся миной, указывается число мин, находящихся в соседних ячейках (учитывая диагональные направления)
    Формат ввода:
    На первой строке указываются два натуральных числа 1n,m100
    , после чего в n строках содержится описание поля в виде последовательности точек '.' и звёздочек '*', где точка означает пустую ячейку, а звёздочка − ячейку с миной.
    Формат вывода:
    n
    строк поля, в каждой ячейке которого будет либо число от 0 до 8, либо мина (обозначенная символом "*"), при этом число означает количество мин в соседних ячейках поля.
    Sample Input:
    4 4
    ..*.
    **..
    ..*.
    ....
    Sample Output:
    23*1
    **32
    23*1
    0111
    Хорошие новости, верно!
    1
    a = list(map(int,input().split()))
    2
    def is_mine(x,y):
    3
        #x 0 .. a[0]
    4
        if x not in range (a[0]):
    5
            return False
    6
        #y 0 .. a[1]
    7
        if y not in range (a[1]):
    8
            return False
    9
        if b[x][y]=="*":
    10
            return True
    11
        else:
    12
            return False
    13
    def find_mine(x,y):
    14
        if is_mine(x,y):
    15
            return '*'
    16
        sum=0
    17
        if is_mine(x+1,y):
    18
            sum+=1
    19
        if is_mine(x-1,y):
    20
            sum+=1
    21
        if is_mine(x,y+1):
    22
            sum+=1
    23
        if is_mine(x,y-1):
    24
            sum+=1
    25
        if is_mine(x+1,y+1):
    26
            sum+=1
    27
        if is_mine(x-1,y-1):
    28
            sum+=1
    29
        if is_mine(x-1,y+1):
    30
            sum+=1
    31
        if is_mine(x+1,y-1):
    32
            sum+=1
    33
        return str(sum)
    34
    b=[]
    35
    for i in range (a[0]):
    36
        b+=[list(input())]
    37
    for i in range(len(b)):
    38
        for j in range(len(b[i])):
    39
            print(find_mine(i,j),end="")
    40
        print()

    вівторок, 28 лютого 2017 р.

    Cache function

    Имеется реализованная функция f(x), принимающая на вход целое число x, которая вычисляет некоторое целочисленое значение и возвращает его в качестве результата работы.
    Функция вычисляется достаточно долго, ничего не выводит на экран, не пишет в файлы и зависит только от переданного аргумента x.
    Напишите программу, которая вычисляет значение этой функции для n чисел. 
    Для ускорения вычисления необходимо сохранять уже вычисленные значения функции при известных аргументах.
    Обратите внимание, что в этой задаче установлено достаточно сильное ограничение в две секунды по времени исполнения кода на тесте. 
    Формат ввода:
    На первой строке находится число n  количество значений, на которых нужно посчитать функцию. После этого следует nстрок, на каждой строке по одному целому числу.
    Формат вывода:
    n строк, в каждой из которой результат вычисления функции на соответствующем аргументе.
    Sample Input:
    5
    5
    12
    9
    20
    12
    Sample Output:
    11
    41
    47
    61
    41
     Так точно!
    1
    # Считайте, что функция f(x) уже определена выше. Определять её отдельно не требуется.
    2
    a = int(input())
    3
    b = {}
    4
    for i in range(a):
    5
        s=int(input())
    6
        if s in b.keys():
    7
            print(b[s])
    8
        else:
    9
            b[s]=f(s)
    10
            print(b[s])

    неділя, 26 лютого 2017 р.

    Jolly jumpers

    Последовательность n>0 целых чисел называется jolly jumper в случае, если значения абсолютных разностей последовательных элементов принимают все возможные значения между 1 и n1
    .
    Например, последовательность 1 -3 -4 -1 1 является jolly jumper последовательностью, так как абсолютные разности равны 4 1 3 2, соответственно, а n1=4
    .
    Будем считать, что последовательность из одного числа является jolly jumper.
    Напишите программу, которая проверяет, является ли введённая последовательность jolly jumper.
    Формат ввода:
    Строка, содержащая 1n10000
    целых чисел, разделённых пробелом.
    Формат вывода:
    Одна строка, содержащая "Jolly" (без кавычек), если последовательность является jolly jumper и "Not jolly" в противном случае.
    Sample Input 1:
    1 -3 -4 -1 1
    Sample Output 1:
    Jolly
    Sample Input 2:
    1 3 5
    Sample Output 2:
    Not jolly
    Sample Input 3:
    4
    Sample Output 3:
    Jolly
     
     
     
    Хорошие новости, верно!
    1
    a = list(map(int,input().split()))
    2
    b = [abs(a[i]-a[i+1]) for i in range(len(a)-1)]
    3
    if len(set(b))!=len(a)-1:
    4
        print("Not jolly")
    5
    elif sum(b)!=(1+len(a)-1)/2*len(b):
    6
        print("Not jolly")
    7
    else:
    8
        print("Jolly")