結果
問題 | No.1596 Distance Sum in 2D Plane |
ユーザー |
![]() |
提出日時 | 2021-07-09 21:43:13 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 297 ms / 2,000 ms |
コード長 | 1,556 bytes |
コンパイル時間 | 153 ms |
コンパイル使用メモリ | 82,064 KB |
実行使用メモリ | 88,396 KB |
最終ジャッジ日時 | 2024-07-01 15:41:17 |
合計ジャッジ時間 | 5,482 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 110 ms
87,104 KB |
testcase_01 | AC | 112 ms
86,724 KB |
testcase_02 | AC | 291 ms
88,060 KB |
testcase_03 | AC | 294 ms
88,048 KB |
testcase_04 | AC | 297 ms
88,140 KB |
testcase_05 | AC | 279 ms
87,812 KB |
testcase_06 | AC | 281 ms
87,876 KB |
testcase_07 | AC | 286 ms
88,136 KB |
testcase_08 | AC | 282 ms
88,156 KB |
testcase_09 | AC | 282 ms
88,084 KB |
testcase_10 | AC | 278 ms
87,800 KB |
testcase_11 | AC | 236 ms
87,632 KB |
testcase_12 | AC | 239 ms
88,396 KB |
testcase_13 | AC | 236 ms
87,628 KB |
testcase_14 | AC | 95 ms
80,604 KB |
testcase_15 | AC | 97 ms
80,948 KB |
testcase_16 | AC | 94 ms
80,580 KB |
testcase_17 | AC | 98 ms
80,696 KB |
testcase_18 | AC | 96 ms
80,592 KB |
testcase_19 | AC | 98 ms
80,288 KB |
ソースコード
from collections import defaultdict, deque, Counter from heapq import heappush, heappop, heapify import math import bisect import random from itertools import permutations, accumulate, combinations, product import sys import string from bisect import bisect_left, bisect_right from math import factorial, ceil, floor,atan2,sin,cos from operator import mul from functools import reduce from pprint import pprint sys.setrecursionlimit(2147483647) INF = 10 ** 13 def LI(): return list(map(int, sys.stdin.readline().split())) def I(): return int(sys.stdin.readline()) def LS(): return sys.stdin.buffer.readline().rstrip().decode('utf-8').split() def S(): return sys.stdin.buffer.readline().rstrip().decode('utf-8') def IR(n): return [I() for i in range(n)] def LIR(n): return [LI() for i in range(n)] def SR(n): return [S() for i in range(n)] def LSR(n): return [LS() for i in range(n)] def SRL(n): return [list(S()) for i in range(n)] def MSRL(n): return [[int(j) for j in list(S())] for i in range(n)] mod = 10**9+7 k,m=LI() n=2*k fac = [1] * (n + 1) inv = [1] * (n + 1) for j in range(1, n + 1): fac[j] = fac[j-1] * j % mod inv[n] = pow(fac[n], mod-2, mod) for j in range(n-1, -1, -1): inv[j] = inv[j+1] * (j+1) % mod def comb(n, r): if r > n or n < 0 or r < 0: return 0 return fac[n] * inv[n - r] * inv[r] % mod ans=comb(k*2,k)*(2*k)%mod for i in range(m): t,x,y=LI() if t==1: ans-=comb(x+y,y)*comb(k-x-1+k-y,k-y) else: ans -= comb(x + y, y) * comb(k- y - 1 +k- x,k- x) print(ans%mod)