結果
問題 | No.2560 A_1 < A_2 < ... < A_N |
ユーザー |
|
提出日時 | 2023-12-02 14:54:43 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 490 ms / 2,000 ms |
コード長 | 3,271 bytes |
コンパイル時間 | 375 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 122,624 KB |
最終ジャッジ日時 | 2024-09-26 17:41:32 |
合計ジャッジ時間 | 6,532 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 15 |
ソースコード
from __future__ import annotationsimport arrayimport bisectimport copyimport fractionsimport heapqimport itertoolsimport mathimport randomimport reimport stringimport sysimport timefrom collections import defaultdict, dequefrom functools import lru_cachesys.setrecursionlimit(10**6)def read_int_list():return list(map(int, input().split()))def read_int():return int(input())def read_str_list():return list(input().split())def read_str():return input()def is_prime(n: int) -> bool:if n < 2:return Falsei = 2ok = Truewhile i * i <= n:if n % i == 0:ok = Falsei += 1return okdef eratosthenes(n: int) -> list[bool]:is_prime_list = ([False, True] * (n // 2 + 1))[0 : n + 1]is_prime_list[1] = Falseis_prime_list[2] = Truefor i in range(3, n + 1, 2):if not (is_prime_list[i]):continueif i * i > n:breakfor k in range(i * i, n + 1, i):is_prime_list[k] = Falsereturn is_prime_listdef legendre(n: int, p: int) -> int:cnt = 0pp = pwhile pp <= n:cnt += n // pppp *= preturn cntdef prime_factorize(n: int) -> defaultdict[int, int]:nn = ni = 2d: defaultdict[int, int] = defaultdict(int)while i * i <= n:while nn % i == 0:d[i] += 1nn //= ii += 1if nn != 1:d[nn] += 1return ddef make_divisors(n: int) -> list[int]:i = 1ret = []while i * i <= n:if n % i == 0:ret.append(i)if i != n // i:ret.append(n // i)i += 1ret.sort()return retdef gcd(a: int, b: int) -> int:if a == 0:return belse:return gcd(b % a, a)def lcm(a: int, b: int) -> int:return a * b // gcd(a, b)def ext_gcd(a: int, b: int) -> tuple[int, int, int]:if a == 0:return (0, 1, b)x, y, g = ext_gcd(b % a, a)return (y - b // a * x, x, g)class UnionFind:def __init__(self, n):self.parent = [-1] * nself.size = ndef find(self, x):if self.parent[x] < 0:return xelse:self.parent[x] = self.find(self.parent[x])return self.parent[x]def merge(self, x, y):x = self.find(x)y = self.find(y)if x != y:if self.parent[x] > self.parent[y]:x, y = y, xself.parent[x] += self.parent[y]self.parent[y] = xself.size -= 1return Trueelse:return Falsedef same(self, x, y):return self.find(x) == self.find(y)def size(self, x):return -self.parent[self.find(x)]def solve():t=read_int()S=[0]for i in range(1,int(3e5)):S.append(S[-1]+i)for _ in range(t):N,X=read_int_list()if S[N-1]>=X or X-S[N-1]<=N-1:print(-1)continueans=[]for i in range(1,N):ans.append(i)ans.append(X-S[N-1])print(*ans)def main():# t = read_int()# for _ in range(t):solve()main()