結果
| 問題 | No.3758 Fan Meeting |
| コンテスト | |
| ユーザー |
uuuus17
|
| 提出日時 | 2026-10-09 22:02:21 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 122 ms / 2,000 ms |
| + 282µs | |
| コード長 | 1,939 bytes |
| 記録 | |
| コンパイル時間 | 63 ms |
| コンパイル使用メモリ | 83,024 KB |
| 実行使用メモリ | 133,004 KB |
| 最終ジャッジ日時 | 2026-10-09 22:02:30 |
| 合計ジャッジ時間 | 5,525 ms |
|
ジャッジサーバーID (参考情報) |
judge5_1 / judge3_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 47 |
ソースコード
import sys
input = lambda: sys.stdin.readline().rstrip()
# sys.setrecursionlimit(10**7)
# sys.set_int_max_str_digits(10**6)
# import pypyjit
# pypyjit.set_param('max_unroll_recursion=-1')
def mp():return map(int,input().split())
def lmp():return list(map(int,input().split()))
def lm1(LIST): return list(map(lambda x:x-1, LIST))
def mps(A):return [tuple(map(int, input().split())) for _ in range(A)]
def stoi(LIST):return list(map(int,LIST))
def itos(LIST):return list(map(str,LIST))
def atoi(LIST): return [ord(i)-ord("a") for i in LIST]
def Atoi(LIST): return [ord(i)-ord("A") for i in LIST]
def LT(LIST,N): return LIST[bisect.bisect_left(LIST,N)-1]
def LE(LIST,N): return LIST[bisect.bisect_right(LIST,N)-1]
def GT(LIST,N): return LIST[bisect.bisect_right(LIST,N)]
def GE(LIST,N): return LIST[bisect.bisect_left(LIST,N)]
def LTidx(LIST,N): return bisect.bisect_left(LIST,N)-1
def LEidx(LIST,N): return bisect.bisect_right(LIST,N)-1
def GTidx(LIST,N): return bisect.bisect_right(LIST,N)
def GEidx(LIST,N): return bisect.bisect_left(LIST,N)
def bitA(X,A):return X & 1<<A == 1<<A
def gtoi(x,y,h,w):return x*w+y
def in_grid(x,y,h,w):return 0 <= x < h and 0 <= y < w
def ceil(U,V):return (U+V-1)//V
def modf1(N,MOD):return (N-1)%MOD+1
def pmat(list):
for i in list:print(*i)
import math
import bisect
import heapq
from copy import copy as cc
from copy import deepcopy as dc
from itertools import accumulate, product
from collections import Counter, defaultdict, deque
m4 = [[1,0],[0,1],[-1,0],[0,-1]]
m8 = [[-1,-1],[-1,0],[-1,1],[0,-1],[0,1],[1,-1],[1,0],[1,1]]
inf = (1<<63)-1
mod = 998244353
def check(x):
cnt = 1
for i in range(n-1,-1,-x):
if a[i] <= x:break
cnt += a[i]
if cnt <= s:return True
else:return False
n,s = mp()
a = lmp()
a.sort()
if a[-1] >= s:
print(a[-1])
exit()
ok = a[-1]
ng = 0
while (ok-ng) != 1:
mid = (ok+ng)//2
if check(mid):ok = mid
else:ng = mid
print(ok)
uuuus17