Блог пользователя TomaKapec

Автор TomaKapec, история, 17 месяцев назад, По-английски

So I found fast I/O for Python and I used it before and it worked and now it doesn't. I don't know why, I tried everything! I use it for this task https://mirror.codeforces.com/contest/1850/problem/G, and here is my code. If anyone can explain why that would be great. (To clarify the code may be optimal, or maybe not but the question isn't about the task itself but rather about fast input)

import io, os
#so this here should work but doesn't
input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline
t = int(input())

def solve(n, points):
    d_plus, d_minus, red, stupac = {}, {}, {}, {}
    r=0
    
    for i in points:
        x, y = i
        a, b, c, d = red.get(x, 0), stupac.get(y, 0), d_plus.get(x+y, 0), d_minus.get(x-y, 0) 
        r+=(a+b+c+d)*2; red[x], stupac[y], d_plus[x+y], d_minus[x-y] = a+1, b+1, c+1, d+1;

    return r

for i in range(t):
    n = int(input())
    points = [list(map(int, (input().decode()).split())) for i in range(n)]
    print(solve(n, points))
  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

»
17 месяцев назад, # |
  Проголосовать: нравится +10 Проголосовать: не нравится

Dictionary in python is also very common issue.

»
10 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

jebiga kapec valjda si rijesio ovo