#!/usr/bin/env python3.8
import timeit
def report( label, result) :
print( "{:40} {:<8}" .format ( label, result) )
N = 1000
print( N)
# 初回実行時
t0 = timeit.repeat ( "s.insert(0, 10)" , "s = []" , repeat= N, number= 1 )
report( "insert 1000 times to an empty list" , sum( t0) )
print( )
# 2回目実行時
t1 = timeit.repeat ( "s.insert(0, 10)" , "s = [0]*1000" , repeat= N, number= 1 )
report( "insert 1000 times to a list[1000]" , sum( t1) )
t1init = timeit.repeat ( "pass" , "s = [0]*1000" , repeat= N, number= 1 )
report( "initialize list[1000]" , sum( t1init) )
print( )
# 3回目実行時
t2 = timeit.repeat ( "s.insert(0, 10)" , "s = [0]*2000" , repeat= N, number= 1 )
report( "insert 1000 times to a list[2000]" , sum( t2) )
t2init = timeit.repeat ( "pass" , "s = [0]*2000" , repeat= N, number= 1 )
report( "initialize list[2000]" , sum( t2init) )
print( )
# 4回目実行時
t3 = timeit.repeat ( "s.insert(0, 10)" , "s = [0]*3000" , repeat= N, number= 1 )
report( "insert 1000 times to a list[3000]" , sum( t3) )
t3init = timeit.repeat ( "pass" , "s = [0]*3000" , repeat= N, number= 1 )
report( "initialize list[3000]" , sum( t3init) )
print( )
# 5回以上
t4 = timeit.repeat ( "s.insert(0, 10)" , "s = [0]*10000" , repeat= N, number= 1 )
report( "insert 1000 times to a list[10000]" , sum( t4) )
t4init = timeit.repeat ( "pass" , "s = [0]*10000" , repeat= N, number= 1 )
report( "initialize list[10000]" , sum( t4init) )
print( )
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uMy44CgppbXBvcnQgdGltZWl0CgpkZWYgcmVwb3J0KGxhYmVsLCByZXN1bHQpOgogICAgcHJpbnQoIns6NDB9IHs6PDh9Ii5mb3JtYXQobGFiZWwsIHJlc3VsdCkpCgpOID0gMTAwMApwcmludChOKQoKIyDliJ3lm57lrp/ooYzmmYIKdDAgPSB0aW1laXQucmVwZWF0KCJzLmluc2VydCgwLCAxMCkiLCAicyA9IFtdIiwgcmVwZWF0PU4sIG51bWJlcj0xKQpyZXBvcnQoImluc2VydCAxMDAwIHRpbWVzIHRvIGFuIGVtcHR5IGxpc3QiLCBzdW0odDApKQpwcmludCgpCgojIDLlm57nm67lrp/ooYzmmYIKdDEgPSB0aW1laXQucmVwZWF0KCJzLmluc2VydCgwLCAxMCkiLCAicyA9IFswXSoxMDAwIiwgcmVwZWF0PU4sIG51bWJlcj0xKQpyZXBvcnQoImluc2VydCAxMDAwIHRpbWVzIHRvIGEgbGlzdFsxMDAwXSIsIHN1bSh0MSkpCgp0MWluaXQgPSB0aW1laXQucmVwZWF0KCJwYXNzIiwgInMgPSBbMF0qMTAwMCIsIHJlcGVhdD1OLCBudW1iZXI9MSkKcmVwb3J0KCJpbml0aWFsaXplIGxpc3RbMTAwMF0iLCBzdW0odDFpbml0KSkKcHJpbnQoKQoKIyAz5Zue55uu5a6f6KGM5pmCCnQyID0gdGltZWl0LnJlcGVhdCgicy5pbnNlcnQoMCwgMTApIiwgInMgPSBbMF0qMjAwMCIsIHJlcGVhdD1OLCBudW1iZXI9MSkKcmVwb3J0KCJpbnNlcnQgMTAwMCB0aW1lcyB0byBhIGxpc3RbMjAwMF0iLCBzdW0odDIpKQoKdDJpbml0ID0gdGltZWl0LnJlcGVhdCgicGFzcyIsICJzID0gWzBdKjIwMDAiLCByZXBlYXQ9TiwgbnVtYmVyPTEpCnJlcG9ydCgiaW5pdGlhbGl6ZSBsaXN0WzIwMDBdIiwgc3VtKHQyaW5pdCkpCnByaW50KCkKCiMgNOWbnuebruWun+ihjOaZggp0MyA9IHRpbWVpdC5yZXBlYXQoInMuaW5zZXJ0KDAsIDEwKSIsICJzID0gWzBdKjMwMDAiLCByZXBlYXQ9TiwgbnVtYmVyPTEpCnJlcG9ydCgiaW5zZXJ0IDEwMDAgdGltZXMgdG8gYSBsaXN0WzMwMDBdIiwgc3VtKHQzKSkKCnQzaW5pdCA9IHRpbWVpdC5yZXBlYXQoInBhc3MiLCAicyA9IFswXSozMDAwIiwgcmVwZWF0PU4sIG51bWJlcj0xKQpyZXBvcnQoImluaXRpYWxpemUgbGlzdFszMDAwXSIsIHN1bSh0M2luaXQpKQpwcmludCgpCgojIDXlm57ku6XkuIoKdDQgPSB0aW1laXQucmVwZWF0KCJzLmluc2VydCgwLCAxMCkiLCAicyA9IFswXSoxMDAwMCIsIHJlcGVhdD1OLCBudW1iZXI9MSkKcmVwb3J0KCJpbnNlcnQgMTAwMCB0aW1lcyB0byBhIGxpc3RbMTAwMDBdIiwgc3VtKHQ0KSkKCnQ0aW5pdCA9IHRpbWVpdC5yZXBlYXQoInBhc3MiLCAicyA9IFswXSoxMDAwMCIsIHJlcGVhdD1OLCBudW1iZXI9MSkKcmVwb3J0KCJpbml0aWFsaXplIGxpc3RbMTAwMDBdIiwgc3VtKHQ0aW5pdCkpCnByaW50KCk=