67 lines
2.2 KiB
Python
67 lines
2.2 KiB
Python
import sys
|
|
sys.setrecursionlimit(5000)
|
|
|
|
def write_answer(answer):
|
|
with open(output_file, 'a') as file:
|
|
file.write(answer+'\n')
|
|
|
|
# def remove_first_symbol_from_the_list():
|
|
|
|
def line_checking(row, position):
|
|
help_row = row
|
|
help_position = position
|
|
next_character_array =[]
|
|
bool_value = False
|
|
for element in row:
|
|
if element=='\n':
|
|
if position in what_is_the_ended_positions():
|
|
return True
|
|
else:
|
|
return False
|
|
next_character_array = find_next_position(help_position, element)
|
|
if next_character_array != []:
|
|
if len(next_character_array)>1:
|
|
for element_in_next_character_array in next_character_array:
|
|
if bool_value ==True:
|
|
break
|
|
else:
|
|
bool_value =line_checking(help_row[1:], element_in_next_character_array)
|
|
else:
|
|
# remove_first_symbol_from_the_list()
|
|
help_row = help_row[1:]
|
|
bool_value = line_checking(help_row, next_character_array[0])
|
|
else:
|
|
break
|
|
return bool_value
|
|
|
|
|
|
def find_next_position(position, character):
|
|
with open(used_table, 'r') as readed_used_table:
|
|
take_all_possible_positions = []
|
|
for row_used_table in readed_used_table:
|
|
line = row_used_table.strip().split(' ')
|
|
if len(line) != 1:
|
|
if position == line[0] and character == line[2]:
|
|
take_all_possible_positions.append(line[1])
|
|
|
|
return take_all_possible_positions
|
|
def what_is_the_ended_positions():
|
|
array = []
|
|
with open(used_table, 'r') as file:
|
|
for row in file:
|
|
line = row.strip().split('\t')
|
|
if len(line)==1:
|
|
array += line
|
|
return array
|
|
used_table = 'test.arg'
|
|
input_file = 'test.in'
|
|
output_file = 'test.out'
|
|
# what_is_the_ended_positions()
|
|
with open(output_file, 'w') as readed_output_file:
|
|
with open(input_file, 'r') as readed_input_file:
|
|
for row_input_file in readed_input_file:
|
|
if line_checking(row_input_file, '0')==True:
|
|
write_answer('YES')
|
|
else:
|
|
write_answer('NO')
|