結果
問題 | No.250 atetubouのzetubou |
ユーザー | vwxyz |
提出日時 | 2022-10-01 04:34:43 |
言語 | Python3 (3.12.2 + numpy 1.26.4 + scipy 1.12.0) |
結果 |
AC
|
実行時間 | 1,692 ms / 5,000 ms |
コード長 | 3,480 bytes |
コンパイル時間 | 196 ms |
コンパイル使用メモリ | 11,264 KB |
実行使用メモリ | 30,160 KB |
最終ジャッジ日時 | 2023-08-24 21:56:16 |
合計ジャッジ時間 | 39,805 ms |
ジャッジサーバーID (参考情報) |
judge11 / judge12 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1,660 ms
30,024 KB |
testcase_01 | AC | 1,652 ms
30,040 KB |
testcase_02 | AC | 1,648 ms
30,052 KB |
testcase_03 | AC | 1,631 ms
29,976 KB |
testcase_04 | AC | 1,692 ms
29,876 KB |
testcase_05 | AC | 1,652 ms
30,084 KB |
testcase_06 | AC | 1,650 ms
30,100 KB |
testcase_07 | AC | 1,675 ms
29,972 KB |
testcase_08 | AC | 1,630 ms
30,160 KB |
testcase_09 | AC | 1,685 ms
29,972 KB |
testcase_10 | AC | 1,637 ms
30,056 KB |
testcase_11 | AC | 1,652 ms
29,936 KB |
testcase_12 | AC | 1,678 ms
30,104 KB |
testcase_13 | AC | 1,659 ms
29,952 KB |
testcase_14 | AC | 1,609 ms
29,948 KB |
testcase_15 | AC | 1,636 ms
30,008 KB |
testcase_16 | AC | 1,648 ms
30,056 KB |
testcase_17 | AC | 1,634 ms
29,980 KB |
testcase_18 | AC | 1,653 ms
30,100 KB |
testcase_19 | AC | 1,677 ms
29,976 KB |
testcase_20 | AC | 1,649 ms
30,072 KB |
testcase_21 | AC | 1,648 ms
29,948 KB |
ソースコード
from ast import Mod import bisect import copy import decimal import fractions import heapq import itertools import math import random import sys import time from collections import Counter,deque,defaultdict from functools import lru_cache,reduce from heapq import heappush,heappop,heapify,heappushpop,_heappop_max,_heapify_max def _heappush_max(heap,item): heap.append(item) heapq._siftdown_max(heap, 0, len(heap)-1) def _heappushpop_max(heap, item): if heap and item < heap[0]: item, heap[0] = heap[0], item heapq._siftup_max(heap, 0) return item from math import gcd as GCD read=sys.stdin.read readline=sys.stdin.readline readlines=sys.stdin.readlines write=sys.stdout.write class MOD: def __init__(self,p,e=None): self.p=p self.e=e if self.e==None: self.mod=self.p else: self.mod=self.p**self.e def Pow(self,a,n): a%=self.mod if n>=0: return pow(a,n,self.mod) else: assert math.gcd(a,self.mod)==1 x=Extended_Euclid(a,self.mod)[0] return pow(x,-n,self.mod) def Build_Fact(self,N): assert N>=0 self.factorial=[1] if self.e==None: for i in range(1,N+1): self.factorial.append(self.factorial[-1]*i%self.mod) else: self.cnt=[0]*(N+1) for i in range(1,N+1): self.cnt[i]=self.cnt[i-1] ii=i while ii%self.p==0: ii//=self.p self.cnt[i]+=1 self.factorial.append(self.factorial[-1]*ii%self.mod) self.factorial_inve=[None]*(N+1) self.factorial_inve[-1]=self.Pow(self.factorial[-1],-1) for i in range(N-1,-1,-1): ii=i+1 while ii%self.p==0: ii//=self.p self.factorial_inve[i]=(self.factorial_inve[i+1]*ii)%self.mod def Fact(self,N): if N<0: return 0 retu=self.factorial[N] if self.e!=None and self.cnt[N]: retu*=pow(self.p,self.cnt[N],self.mod)%self.mod retu%=self.mod return retu def Fact_Inve(self,N): if self.e!=None and self.cnt[N]: return None return self.factorial_inve[N] def Comb(self,N,K,divisible_count=False): if K<0 or K>N: return 0 retu=self.factorial[N]*self.factorial_inve[K]%self.mod*self.factorial_inve[N-K]%self.mod if self.e!=None: cnt=self.cnt[N]-self.cnt[N-K]-self.cnt[K] if divisible_count: return retu,cnt else: retu*=pow(self.p,cnt,self.mod) retu%=self.mod return retu def Extended_Euclid(n,m): stack=[] while m: stack.append((n,m)) n,m=m,n%m if n>=0: x,y=1,0 else: x,y=-1,0 for i in range(len(stack)-1,-1,-1): n,m=stack[i] x,y=y,x-(n//m)*y return x,y comb=[[0]*1501 for i in range(1501)] inf=1<<60 for a in range(1,1501): comb[a][0]=1 for b in range(1,1501): comb[0][b]=1 for a in range(1,1501): for b in range(1,1501): comb[a][b]+=comb[a-1][b] comb[a][b]+=comb[a][b-1] if comb[a][b]>=inf: comb[a][b]=inf Q=int(readline()) for q in range(Q): D,X,T=map(int,readline().split()) if comb[X][D-1]>T: ans="ZETUBOU" else: ans="AC" print(ans)