Submission #10928876
Source Code Expand
Copy
import mathimport sysimport bisectstdin = sys.stdindef bisectf_left(f,val,start,end):fs = f(start)if val <= fs:return startfe = f(end-1)if fe < val:return end# Now fs < val and val <= fewhile True:if (end - start) <= 2:return end - 1mid = (start + end )// 2fm = f(mid)if val <= fm :end = mid + 1
import math import sys import bisect stdin = sys.stdin def bisectf_left(f,val,start,end): fs = f(start) if val <= fs: return start fe = f(end-1) if fe < val: return end # Now fs < val and val <= fe while True: if (end - start) <= 2: return end - 1 mid = (start + end )// 2 fm = f(mid) if val <= fm : end = mid + 1 else: start = mid continue def bisectf_right(f,val,start,end): fs = f(start) if val < fs: return start fe = f(end-1) if fe <= val: return end # Now fs <= val and val < fe while True: # print(start,end) if (end - start) <= 2: return end - 1 mid = (start + end )// 2 fm = f(mid) if fm > val: end = mid + 1 else: start = mid continue def bisectf_bool(f,start,end): fs = f(start) if fs == True: return start fe = f(end-1) if fe == False: return end # Now fs == False and fe == True while True: # print(start,end) if (end - start) <= 2: return end - 1 mid = (start + end )// 2 fm = f(mid) if fm == True: end = mid + 1 else: start = mid continue ns = lambda: stdin.readline().rstrip() ni = lambda: int(stdin.readline().rstrip()) nm = lambda: map(int, stdin.readline().split()) nl = lambda: list(map(int, stdin.readline().split())) mod = 10**9 + 7 sys.setrecursionlimit(1000010) N,K = nm() A = nl() A.sort() # print(N,K,A) zeroleft=bisect.bisect_left(A,0) zeroright=bisect.bisect_right(A,0) ( nminus,nzero,nplus ) = (zeroleft,zeroright-zeroleft,len(A)-zeroright) # print(nminus,nzero,nplus) cminus = nminus * nplus czero = nzero * (nminus + nplus ) + nzero * (nzero-1) // 2 cplus = (nplus * (nplus - 1) + nminus * (nminus -1 ))//2 if K <= cminus: group = "minus" k = K elif K <= czero + cminus: print(0) exit(0) else: group = "plus" k = K - (czero + cminus) def is_number_of_multiple_LE_Z_is_ME_K(z,k): if z == -1: return (True if cminus >= k else False) elif z == 0 : return (True if cminus + czero >= k else False) if z > 0: count = cminus + czero if count >=k: return True for i in range(zeroright+1,N): x = A[i] limit = z // x j = max(min(bisect.bisect_right(A,limit,zeroright),i),zeroright) count += (j - zeroright) # print("A",i,k,"limit=",limit,j,zeroright,j-zeroright) if count >=k: return True for i in range(1,zeroleft): x = A[i] limit = - (-z // x ) j = min(bisect.bisect_left(A,limit,0,i),i) count += (i-j) if count >= k: return True # return False else: # z is negavite and smaller than -1 count = 0 for i in range(zeroright,N): x = A[i] limit = z // x j = min(bisect.bisect_right(A,limit,0,zeroleft),zeroleft) count += j if count >=k: return True return False #for i in range(0,17): # for j in range(-7,5): # print(i,j,is_number_of_multiple_LE_K_is_ME_Z(j,i)) if nminus == 0: nmax = A[N-2]* A[N-1] nmin = A[0] * A[1] elif nplus == 0: nmin = A[N-2]* A[N-1] nmax = A[0] * A[1] else: nmax = max(A[N-2]* A[N-1],A[0] * A[1]) nmin = A[0]* A[N-1] def F(x): global K # print("K=",K) return is_number_of_multiple_LE_Z_is_ME_K(x,K) # for i in range(-7,5): # print(i,F(i)) print(bisectf_bool(F,nmin,nmax + 1))
Submission Info
Submission Time | |
---|---|
Task | D - Pairs |
User | MyOden |
Language | PyPy3 (2.4.0) |
Score | 0 |
Code Size | 3938 Byte |
Status | TLE |
Exec Time | 2108 ms |
Memory | 81248 KB |
Judge Result
Set Name | Sample | Subtask1 | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 400 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | sample_01.txt, sample_02.txt, sample_03.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt, sub1_24.txt, sub1_25.txt, sub1_26.txt, sub1_27.txt, sub1_28.txt, sub1_29.txt, sub1_30.txt, sub1_31.txt, sub1_32.txt, sub1_33.txt, sub1_small_01.txt, sub1_small_02.txt, sub1_small_03.txt, sub1_small_04.txt, sub1_small_05.txt, sub1_small_06.txt, sub1_small_07.txt, sub1_small_08.txt, sub1_small_09.txt, sub1_small_10.txt, sub1_small_11.txt, sub1_small_12.txt, sub1_small_13.txt, sub1_small_14.txt, sub1_small_15.txt, sub1_small_16.txt, sub1_small_17.txt, sub1_small_18.txt, sub1_small_19.txt, sub1_small_20.txt, sub1_small_21.txt, sub1_small_22.txt, sub1_small_23.txt, sub1_small_24.txt, sub1_small_25.txt, sub1_small_26.txt, sub1_small_27.txt, sub1_small_28.txt, sub1_small_29.txt, sub1_small_30.txt, sub1_small_31.txt, sub1_small_32.txt, sub1_small_33.txt, sub1_small_34.txt, sub1_small_35.txt, sub1_small_36.txt, sub1_small_37.txt, sub1_small_38.txt, sub1_small_39.txt, sub1_small_40.txt, sub1_small_41.txt, sub1_small_42.txt, sub1_small_43.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 163 ms | 38384 KB |
sample_02.txt | AC | 173 ms | 38256 KB |
sample_03.txt | AC | 185 ms | 39024 KB |
sub1_01.txt | AC | 234 ms | 54128 KB |
sub1_02.txt | TLE | 2108 ms | 68320 KB |
sub1_03.txt | TLE | 2108 ms | 80084 KB |
sub1_04.txt | TLE | 2107 ms | 63648 KB |
sub1_05.txt | AC | 1064 ms | 54664 KB |
sub1_06.txt | AC | 443 ms | 43824 KB |
sub1_07.txt | AC | 1853 ms | 69124 KB |
sub1_08.txt | TLE | 2106 ms | 73968 KB |
sub1_09.txt | AC | 1867 ms | 66348 KB |
sub1_10.txt | AC | 937 ms | 46880 KB |
sub1_11.txt | TLE | 2107 ms | 73968 KB |
sub1_12.txt | AC | 659 ms | 45648 KB |
sub1_13.txt | TLE | 2106 ms | 68520 KB |
sub1_14.txt | AC | 893 ms | 50340 KB |
sub1_15.txt | AC | 180 ms | 41968 KB |
sub1_16.txt | AC | 268 ms | 73712 KB |
sub1_17.txt | AC | 1084 ms | 57584 KB |
sub1_18.txt | AC | 197 ms | 40148 KB |
sub1_19.txt | TLE | 2108 ms | 80084 KB |
sub1_20.txt | TLE | 2107 ms | 63520 KB |
sub1_21.txt | TLE | 2108 ms | 79056 KB |
sub1_22.txt | AC | 1891 ms | 56432 KB |
sub1_23.txt | TLE | 2106 ms | 59376 KB |
sub1_24.txt | AC | 1881 ms | 51180 KB |
sub1_25.txt | AC | 1191 ms | 46252 KB |
sub1_26.txt | TLE | 2106 ms | 67640 KB |
sub1_27.txt | AC | 207 ms | 57808 KB |
sub1_28.txt | TLE | 2107 ms | 81248 KB |
sub1_29.txt | AC | 301 ms | 79700 KB |
sub1_30.txt | TLE | 2108 ms | 79828 KB |
sub1_31.txt | TLE | 2108 ms | 79696 KB |
sub1_32.txt | TLE | 2108 ms | 79828 KB |
sub1_33.txt | TLE | 2107 ms | 79920 KB |
sub1_small_01.txt | AC | 244 ms | 43868 KB |
sub1_small_02.txt | AC | 212 ms | 43100 KB |
sub1_small_03.txt | AC | 163 ms | 38640 KB |
sub1_small_04.txt | AC | 186 ms | 39920 KB |
sub1_small_05.txt | AC | 162 ms | 38256 KB |
sub1_small_06.txt | AC | 256 ms | 43996 KB |
sub1_small_07.txt | AC | 176 ms | 38256 KB |
sub1_small_08.txt | AC | 238 ms | 42844 KB |
sub1_small_09.txt | AC | 184 ms | 39408 KB |
sub1_small_10.txt | AC | 237 ms | 42716 KB |
sub1_small_11.txt | AC | 209 ms | 41324 KB |
sub1_small_12.txt | AC | 207 ms | 41308 KB |
sub1_small_13.txt | AC | 184 ms | 41068 KB |
sub1_small_14.txt | AC | 192 ms | 41068 KB |
sub1_small_15.txt | AC | 198 ms | 42092 KB |
sub1_small_16.txt | AC | 261 ms | 45404 KB |
sub1_small_17.txt | AC | 228 ms | 42972 KB |
sub1_small_18.txt | AC | 223 ms | 42972 KB |
sub1_small_19.txt | AC | 171 ms | 39024 KB |
sub1_small_20.txt | AC | 214 ms | 41308 KB |
sub1_small_21.txt | AC | 178 ms | 38640 KB |
sub1_small_22.txt | AC | 175 ms | 38640 KB |
sub1_small_23.txt | AC | 163 ms | 38256 KB |
sub1_small_24.txt | AC | 166 ms | 38256 KB |
sub1_small_25.txt | AC | 210 ms | 42972 KB |
sub1_small_26.txt | AC | 207 ms | 42460 KB |
sub1_small_27.txt | AC | 181 ms | 38512 KB |
sub1_small_28.txt | AC | 179 ms | 38512 KB |
sub1_small_29.txt | AC | 247 ms | 43996 KB |
sub1_small_30.txt | AC | 202 ms | 42092 KB |
sub1_small_31.txt | AC | 231 ms | 41564 KB |
sub1_small_32.txt | AC | 223 ms | 41820 KB |
sub1_small_33.txt | AC | 178 ms | 38640 KB |
sub1_small_34.txt | AC | 166 ms | 38640 KB |
sub1_small_35.txt | AC | 214 ms | 41180 KB |
sub1_small_36.txt | AC | 165 ms | 38256 KB |
sub1_small_37.txt | AC | 201 ms | 41436 KB |
sub1_small_38.txt | AC | 206 ms | 41580 KB |
sub1_small_39.txt | AC | 234 ms | 43372 KB |
sub1_small_40.txt | AC | 208 ms | 41436 KB |
sub1_small_41.txt | AC | 175 ms | 38256 KB |
sub1_small_42.txt | AC | 174 ms | 38256 KB |
sub1_small_43.txt | AC | 177 ms | 38512 KB |