結果
問題 | No.1292 パタパタ三角形 |
ユーザー |
![]() |
提出日時 | 2023-03-29 13:39:14 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 227 ms / 2,000 ms |
コード長 | 3,385 bytes |
コンパイル時間 | 225 ms |
コンパイル使用メモリ | 82,520 KB |
実行使用メモリ | 124,600 KB |
最終ジャッジ日時 | 2024-09-21 06:41:13 |
合計ジャッジ時間 | 4,048 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 14 |
ソースコード
def main():from math import sqrt,sin,cos,tan,ceil,radians,floor,gcd,exp,log,log10,log2,factorial,fsumfrom heapq import heapify, heappop, heappushfrom bisect import bisect_left, bisect_rightfrom copy import deepcopyimport copyimport randomfrom collections import deque,Counter,defaultdictfrom itertools import permutations,combinationsfrom decimal import Decimal,ROUND_HALF_UP#tmp = Decimal(mid).quantize(Decimal('0'), rounding=ROUND_HALF_UP)from functools import lru_cache, reduce#@lru_cache(maxsize=None)from operator import add,sub,mul,xor,and_,or_,itemgetterINF = 10**18mod1 = 10**9+7mod2 = 998244353#DecimalならPython#再帰ならPython!!!!!!!!!!!!!!!!!!!!!!!!!!'''これ、移動させても被りはしないのか一辺を2とする上向き三角のとき右に移動するとき、(1,√3)移動する下に移動するとき、(0,-1)移動する左に移動するとき、(-1,√3移動する)下向き三角のとき逆'''S = list(input())N = len(S)st = set()u = 'a'r = 'c'l = 'b'x,y = 0,0st.add((x,y))rev = 1for i in range(N):if rev == 1:if S[i] == u:dx,dy = 0,-1elif S[i] == l:dx,dy = -1,1if l == 'b':u = 'c'r = 'b'l = 'a'elif l == 'a':u = 'b'r = 'a'l = 'c'else:u = 'a'l = 'b'r = 'c'else:dx,dy = 1,1if u == 'a':u = 'b'l = 'c'r = 'a'elif u == 'b':u = 'c'l = 'a'r = 'b'else:u = 'a'r = 'c'l = 'b'else:if S[i] == r:dx,dy = 1,-1if u == 'a':u = 'b'r = 'a'l = 'c'elif u == 'b':u = 'c'r = 'b'l = 'a'else:u = 'a'r = 'c'l = 'b'elif S[i] == u:dx,dy = 0,1else:dx,dy = -1,-1if u == 'a':u = 'c'l = 'a'r = 'b'elif u == 'b':u = 'a'l = 'b'r = 'c'else:u = 'b'l = 'c'r = 'a'x += dxy += dyst.add((x,y))rev *= -1print(len(st))if __name__ == '__main__':main()