結果
問題 |
No.8116 TCP ソート
|
ユーザー |
![]() |
提出日時 | 2025-04-01 23:38:40 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 3,619 bytes |
コンパイル時間 | 376 ms |
コンパイル使用メモリ | 82,460 KB |
実行使用メモリ | 64,072 KB |
最終ジャッジ日時 | 2025-04-01 23:38:42 |
合計ジャッジ時間 | 2,567 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 11 WA * 16 |
ソースコード
import sys import math from copy import deepcopy as dc from collections import defaultdict as dd import heapq _S = input;_R = range;_P = print def _RR(a): return range(a-1,-1,-1) def _I(): return int(_S()) def _M(): return map(int, _S().split()) def _L(): return list(_M()) def _T(): return tuple(_L()) def _O(): return list(map(int, open(0).read().split())) def yn(b): print("Yes" if b else "No") def fs(b): print("First" if b else "Second") biga = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";smaa = "abcdefghijklmnopqrstuvwxyz" ctoi = lambda c: ord(c) - ord('a') ctoi2 = lambda c: ord(c) - ord('A') itoc = lambda i: chr(ord('a') + i) itoc2 = lambda i: chr(ord('A') + i) inf = 10 ** 19 mod = 10**9+7 def around(x,y,type_=False): rt = [] rt.extend([(x+1,y),(x-1,y),(x,y+1),(x,y-1)]) if type_: rt.extend([(x+1,y+1),(x-1,y-1),(x-1,y+1),(x+1,y-1)]) return rt def acc(a): b = [0] for i in a: b.append(b[-1] + i) return b class heap: l = [] def __init__(self,*s): self.l = list(s);heapq.heapify(self.l) def min(self): return False if (len(self.l) == 0) else self.l[0] def pop(self): return False if (len(self.l) == 0) else heapq.heappop(self.l) def push(self,n): heapq.heappush(self.l,n) def dump(self): return heapq.nsmallest(len(self.l),self.l) def max(self): return False if (len(self.l) == 0) else heapq.nlargest(1,self.l)[0] def len(self): return len(self.l) class base: bn = 0; dig = 0; num = [] def __init__(self,base_num,digit = 0): self.bn = base_num; self.dig = digit; self.num = [0]*digit def max(self): return(self.bn**self.dig-1) def dump(self): return(self.num[::-1]) def ncp(self,digit,n): self.num[digit] = min(self.num[digit]+n,self.bn-1) def plus(self,digit,n): for i in _R(digit-self.dig+1): self.num.append(0) self.dig = max(self.dig,digit+1) if (self.num[digit]+n >= self.bn): self.plus(digit+1,(self.num[digit]+n)//self.bn) self.num[digit] = (self.num[digit]+n)%self.bn def copy(self,n): self.num = dc(n) dig = len(self.num) def change(self,n): digit = int(math.log(n,self.bn))+1 for i in _R(digit-self.dig+1): self.num.append(0) self.dig = max(self.dig,digit+1) for i in _R(self.dig): self.num[i] = n%self.bn**(i+1)//self.bn**i n -= self.num[i] return self.damp() def b10(self): return(sum([self.num[i]*self.bn**i for i in _R(self.dig)])) def gin(N, M=None): g = [[] for _ in range(N)] for _ in range(M or N-1): u, v = map(int, input().split());u -= 1;v -= 1 g[u].append(v);g[v].append(u) return g def ginh(N, M): g = [[] for _ in range(N)] for _ in range(M): u, v, h = map(int, input().split());u -= 1;v -= 1 g[u].append((v,h));g[v].append((u,h)) return g def ub(lis,n,same=False): l = 0 r = len(lis) while r-l>1: m = (l+r)//2 if (lis[m]>n or (same and lis[m]==n)): r = m else: l = m return r def msum(a,b): return (a+b)%mod class rhash: hs = None def __init__(self,S,N): self.hs = SegTree(msum,0,[ctoi(S[i])*pow(31,i,mod) for i in _R(N)]) def get(self,l,r): return self.hs.prod(l,r+1)*pow(pow(31,l,mod),mod-2,mod)%mod def getall(self): return self.hs.all_prod() def change(self,n,c): self.hs.set(n,ctoi(c)*pow(31,n,mod)) #--------------ごっつりしていってね-------------- #あぁそうそう ごちうさ楽しみ S = _S() p = {"T":0,"C":1,"P":2} _P(*sorted(S,key=lambda a:p[a]),sep="")