結果
| 問題 |
No.1651 Removing Cards
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-08-20 22:48:09 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 206 ms / 2,000 ms |
| コード長 | 992 bytes |
| コンパイル時間 | 388 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 97,920 KB |
| 最終ジャッジ日時 | 2024-10-14 04:58:19 |
| 合計ジャッジ時間 | 7,648 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 32 |
ソースコード
import sys
input = lambda :sys.stdin.readline()[:-1]
ni = lambda :int(input())
na = lambda :list(map(int,input().split()))
sys.setrecursionlimit(10**7)
yes = lambda :print("yes");Yes = lambda :print("Yes")
no = lambda :print("no");No = lambda :print("No")
inf = 10**16
#######################################################################
k, q = na()
from bisect import *
bl = bisect_left
br = bisect_right
def f(n):
r = 0
while True:
#print(n)
if n%k==0:
break
n = n-(n+k-1)//k
r+=1
return r
def g(n):
r = []
while n>0:
r.append(str(n%k))
n//=k
return "".join(r[::-1])
def solve(n):
return 1-ans[bl(ans, -n)]
"""i = 0
j = 1
ans = []
m = -1
N = 10**3
while i<N:
z = f(i)
if m<z:
m = z
ans.append(i)
i+=1
"""
dp = [0]
while dp[-1]<=10**18:
dp.append((dp[-1]*k+k-1)//(k-1))
ans = [-i for i in dp][::-1]
for i in range(q):
n = ni()-1
print(solve(n))