結果
| 問題 | 
                            No.1717 Levi-Civita Triangle
                             | 
                    
| コンテスト | |
| ユーザー | 
                             noetherian_ring
                         | 
                    
| 提出日時 | 2021-10-22 23:25:48 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 162 ms / 2,000 ms | 
| コード長 | 1,505 bytes | 
| コンパイル時間 | 231 ms | 
| コンパイル使用メモリ | 82,432 KB | 
| 実行使用メモリ | 159,640 KB | 
| 最終ジャッジ日時 | 2024-09-23 07:57:20 | 
| 合計ジャッジ時間 | 5,310 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge2 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 42 | 
ソースコード
from collections import defaultdict
from itertools import repeat
import sys
import os
sys.setrecursionlimit(100000)
is_local = "TERM_PROGRAM" in os.environ
input = sys.stdin.readline
INF = float('inf')
MOD = 998244353
def debug(*args, **kwargs):
    if is_local:
        print(*args, **kwargs)
def I(): return input().rstrip()
def IS(): return input().split()
def II(): return int(input())
def IIS(): return map(int, input().split())
def LIIS(): return list(map(int, input().split()))
jun_map = {0: 1, 1: 2, 2: 0}
rev_map = {0: 2, 2: 1, 1: 0}
def main():
    n = II()
    va = LIIS()
    rev = n % 2 == 0
    one_array = [0]
    two_array = [0]
    cnt = 0
    for _ in range(2*n):
        one_array.append(step(one_array[-1], rev))
        two_array.append(step(two_array[-1], not rev))
        cnt += 1
        if cnt == 2:
            rev = not rev
            cnt = 0
    one_array2 = []
    one_array3 = []
    two_array2 = []
    two_array3 = []
    for i in range(2*n+1):
        one_array2.append(jun_map[one_array[i]])
        one_array3.append(rev_map[one_array[i]])
        two_array2.append(jun_map[two_array[i]])
        two_array3.append(rev_map[two_array[i]])
    if va == one_array or va == one_array2 or va == one_array3:
        print(1)
    elif va == two_array or va == two_array2 or va == two_array3:
        print(2)
    else:
        print(0)
def step(x, rev):
    if rev:
        return rev_map[x]
    else:
        return jun_map[x]
if __name__ == "__main__":
    main()
            
            
            
        
            
noetherian_ring