Skip to content

Instantly share code, notes, and snippets.

@alxfv
Created April 4, 2020 14:01
Show Gist options
  • Save alxfv/4e1f46b57bd720f823ca0fd987a1f4f4 to your computer and use it in GitHub Desktop.
Save alxfv/4e1f46b57bd720f823ca0fd987a1f4f4 to your computer and use it in GitHub Desktop.
PyPy2 Python Competitive Template: Fast IO + unittest
# <editor-fold desc="Fast IO">
# !/usr/bin/env python
from __future__ import division, print_function
import os
import random
import sys
from io import BytesIO, IOBase
if sys.version_info[0] < 3:
from __builtin__ import xrange as range
from future_builtins import ascii, filter, hex, map, oct, zip
BUFFER_SIZE = 8192
DBG = os.environ.get('DBG') == '1'
class FastIO(IOBase):
newlines = 0
def __init__(self, file):
self._fd = file.fileno()
self.buffer = BytesIO()
self.writable = 'x' in file.mode or 'r' not in file.mode
self.write = self.buffer.write if self.writable else None
def read(self):
while True:
b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFFER_SIZE))
if not b:
break
ptr = self.buffer.tell()
self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
self.newlines = 0
return self.buffer.read()
def readline(self):
while self.newlines == 0:
b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFFER_SIZE))
self.newlines = b.count(b'\n') + (not b)
ptr = self.buffer.tell()
self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr)
self.newlines -= 1
return self.buffer.readline()
def flush(self):
if self.writable:
os.write(self._fd, self.buffer.getvalue())
self.buffer.truncate(0), self.buffer.seek(0)
class IOWrapper(IOBase):
def __init__(self, file):
self.buffer = FastIO(file)
self.flush = self.buffer.flush
self.writable = self.buffer.writable
self.write = lambda s: self.buffer.write(s.encode('ascii'))
self.read = lambda: self.buffer.read().decode('ascii')
self.readline = lambda: self.buffer.readline().decode('ascii')
def print(*args, **kwargs):
"""Prints the values to a stream, or to sys.stdout by default."""
sep, file = kwargs.pop('sep', ' '), kwargs.pop('file', sys.stdout)
at_start = True
for x in args:
if not at_start:
file.write(sep)
file.write(str(x))
at_start = False
file.write(kwargs.pop('end', '\n'))
if kwargs.pop('flush', False):
file.flush()
if sys.version_info[0] < 3:
sys.stdin, sys.stdout = FastIO(sys.stdin), FastIO(sys.stdout)
else:
sys.stdin, sys.stdout = IOWrapper(sys.stdin), IOWrapper(sys.stdout)
def str_to_matrix(m, n, s):
a = []
for line in s.splitlines():
a.append(list(map(int, line.split())))
return a
input = lambda: sys.stdin.readline()
cin_str = input
def cin_int_list():
return [int(x) for x in sys.stdin.readline().split()]
def cin_int_iter():
return (int(x) for x in sys.stdin.readline().split())
def cin_int():
return int(input())
def cout_int_iter(a):
print(' '.join(map(str, a)))
def iota(n, start=0):
return list(range(start, n))
def cin_digits_list():
return [ord(x) - ord('0') for x in input()]
# </editor-fold>
def solve(*args):
pass
def main():
pass
if __name__ == '__main__':
if DBG:
import unittest
class TestCase(unittest.TestCase):
pass
unittest.main()
exit()
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment