QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#437599 | #8786. The Whole World | ucup-team1004 | WA | 12ms | 10588kb | Python3 | 1.5kb | 2024-06-09 13:52:16 | 2024-06-09 13:52:16 |
Judging History
answer
T=int(input())
def gcd(n,m):
if m==0:
return n
else:
return gcd(m,n%m)
def binom(n,m):
if 0>m or m>n:
return 0
else:
ans=1
for i in range(m):
ans=ans*(n-i)//(i+1)
return ans
def qpow(x,y,mod):
ans=1
while y:
if y%2==1:
ans=ans*x%mod
x=x*x%mod
y//=2
return ans
def isprime(x):
i=2
while i*i<=x:
if x%i==0:
return 0
i+=1
return 1
prime=[]
for i in range(2,101):
if isprime(i):
prime.append(i)
while T>0:
n=int(input())
x=[0 for i in range(n)]
y=[0 for i in range(n)]
for i in range(n):
x[i],y[i]=map(int,input().split(' '))
def chk(x,y,k,p):
# print("chk",x,y,k)
a=[[0 for i in range(k+2)] for j in range(n)]
for i in range(n):
a[i][k+1]=y[i]
for j in range(k+1):
a[i][j]=binom(x[i],j)%p
for i in range(min(n,k+1)):
for j in range(i+1,n):
while a[j][i]:
w=a[i][i]//a[j][i]
for t in range(k+2):
a[i][t]-=a[j][t]*w%p
a[i][t]+=p
a[i][t]%=p
a[j],a[i]=a[i],a[j]
for i in range(min(n,k+1)):
if a[i][i]==0:
continue
iv=qpow(a[i][i],p-2,p)
for j in range(i):
w=iv*a[j][i]%p
for t in range(0,k+2):
a[j][t]-=a[i][t]*w%p
a[j][t]+=p
a[j][t]%=p
for i in range(n):
g=p
for j in range(k+1):
g=gcd(g,a[i][j])
if a[i][k+1]%g!=0:
return 0
# print(a)
return 1
def check(x,y,k):
for p in prime:
if not chk(x,y,k,p):
return 0
return 1
ans=0
while not check(x,y,ans):
ans+=1
print(ans)
T-=1
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 12ms
memory: 10584kb
input:
2 2 1 0 4 1 3 1 1 4 4 6 6
output:
3 1
result:
ok 2 number(s): "3 1"
Test #2:
score: -100
Wrong Answer
time: 10ms
memory: 10588kb
input:
2 2 1 0 4 1 3 1 0 3 0 5 4
output:
3 2
result:
wrong answer 2nd numbers differ - expected: '3', found: '2'