Каплан Владимир Сергеевич 611 ВМК SequenceDiv 1275
Пак Алиса, 611 группа SequenceDiv 796
f1import sysf1import sys
2import ast2import ast
33
n4class X(ast.NodeTransformer):n4class FloorDivTransformer(ast.NodeTransformer):
55
t6    def visit_BinOp(self, n):t6    def visit_BinOp(self, node):
7        self.generic_visit(n)7        self.generic_visit(node)
8        if isinstance(n.op, ast.FloorDiv):8        if isinstance(node.op, ast.FloorDiv):
9            return ast.copy_location(ast.Call(func=ast.Name(id='y', ctx=9            return ast.copy_location(ast.Call(func=ast.Name(id='floor_di
>ast.Load()), args=[n.left, n.right], keywords=[]), n)>v', ctx=ast.Load()), args=[node.left, node.right], keywords=[]), node)
10        return n10        return node
11i = sys.stdin.read()11input_code = sys.stdin.read()
12t = ast.parse(i)12tree = ast.parse(input_code)
13x = X()13transformer = FloorDivTransformer()
14t = x.visit(t)14tree = transformer.visit(tree)
15ast.fix_missing_locations(t)15ast.fix_missing_locations(tree)
16y_code = '\ndef y(a, b):\n    if isinstance(a, int):\n        return a /16floor_div_code = '\ndef floor_div(a, b):\n    if isinstance(a, int):\n  
>/ b\n    elif isinstance(a, (list, tuple, str)):\n        return a[: len>      return a // b\n    elif isinstance(a, (list, tuple, str)):\n      
>(a) // b]\n'>  return a[: len(a) // b]\n    else:\n        raise TypeError("Unsupport
 >ed type for floor_div")\n'
17y_ast = ast.parse(y_code)17floor_div_ast = ast.parse(floor_div_code)
18t.body = y_ast.body + t.body18tree.body = floor_div_ast.body + tree.body
19exec(compile(t, filename='<ast>', mode='exec'))19exec(compile(tree, filename='<ast>', mode='exec'))
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op