結果
問題 |
No.3091 The Little Match Boy
|
ユーザー |
|
提出日時 | 2025-04-06 16:17:03 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 215 ms / 2,000 ms |
コード長 | 1,644 bytes |
コンパイル時間 | 584 ms |
コンパイル使用メモリ | 82,212 KB |
実行使用メモリ | 115,384 KB |
最終ジャッジ日時 | 2025-04-06 16:17:13 |
合計ジャッジ時間 | 8,609 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 62 |
ソースコード
# https://atcoder.jp/contests/QUPC2024/tasks/QUPC2024_a # R # cSpell:disable from bisect import bisect_left, bisect_right from collections import Counter, defaultdict, deque from copy import copy from functools import lru_cache from itertools import combinations, permutations from math import ceil, log, log2, log10 from sys import setrecursionlimit, stdin def flatten(N): from itertools import chain return chain.from_iterable(N) def getPrimes(n: int): N = list(3, range(n), 2) P = [2] p = 2 V = int(pow(N, 0.5)) while p < V: p = N.pop(0) N = [t for t in N if N % p] P.append(p) return P def getFactor(n: int): P = [] V = int(pow(n, 0.5)) while not n % 2: n //= 2 P.append(2) for k in range(3, V + 1, 2): while not n % k: n //= k P.append(k) return P def dijkstra(f, p, E): for q in E[p]: if f != q: return dijkstra(p, q, E) setrecursionlimit(10**8) def ins(): return stdin.readline()[:-1] def inms(): return ins().split() def ini(): return int(ins()) def inmi(): return map(int, inms()) def inf(): return float(ins()) def inmf(): return map(float, inms()) def out(*args, sep=" ", end="\n"): print(*args, sep=sep, end=end) MOD = 1000000007 MAX = 1 << 63 MIN = -1 << 63 N, M = inmi() S = [*inmi()] V = [*range(0, N + 1)] F = dict() for i, s in enumerate(S): F[i] = (V[s], V[s + 1]) V[s], V[s + 1] = V[s + 1], V[s] A = set() I = {v: i for i, v in enumerate(V)} for i, s in enumerate(S): f = frozenset((V[I[F[i][0]]], V[I[F[i][1]]])) A.add(f) print(len(A))