結果

問題 No.2967 Nana's Plus Permutation Game
ユーザー lif4635lif4635
提出日時 2024-11-16 17:01:57
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 834 ms / 2,000 ms
コード長 2,017 bytes
コンパイル時間 497 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 95,104 KB
平均クエリ数 4169.09
最終ジャッジ日時 2024-11-16 17:02:38
合計ジャッジ時間 35,126 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 118 ms
70,120 KB
testcase_01 AC 366 ms
92,768 KB
testcase_02 AC 187 ms
82,272 KB
testcase_03 AC 267 ms
86,880 KB
testcase_04 AC 366 ms
93,272 KB
testcase_05 AC 333 ms
92,128 KB
testcase_06 AC 283 ms
88,928 KB
testcase_07 AC 396 ms
92,896 KB
testcase_08 AC 134 ms
71,520 KB
testcase_09 AC 394 ms
92,640 KB
testcase_10 AC 322 ms
92,520 KB
testcase_11 AC 144 ms
71,656 KB
testcase_12 AC 144 ms
77,160 KB
testcase_13 AC 318 ms
89,320 KB
testcase_14 AC 331 ms
92,392 KB
testcase_15 AC 252 ms
87,272 KB
testcase_16 AC 178 ms
81,256 KB
testcase_17 AC 385 ms
92,392 KB
testcase_18 AC 268 ms
87,528 KB
testcase_19 AC 151 ms
77,928 KB
testcase_20 AC 233 ms
85,608 KB
testcase_21 AC 539 ms
94,560 KB
testcase_22 AC 509 ms
94,568 KB
testcase_23 AC 462 ms
94,096 KB
testcase_24 AC 519 ms
94,184 KB
testcase_25 AC 497 ms
94,184 KB
testcase_26 AC 548 ms
94,568 KB
testcase_27 AC 439 ms
93,800 KB
testcase_28 AC 555 ms
94,824 KB
testcase_29 AC 563 ms
94,824 KB
testcase_30 AC 563 ms
94,824 KB
testcase_31 AC 439 ms
94,440 KB
testcase_32 AC 477 ms
94,696 KB
testcase_33 AC 507 ms
94,184 KB
testcase_34 AC 438 ms
94,312 KB
testcase_35 AC 543 ms
94,696 KB
testcase_36 AC 449 ms
94,568 KB
testcase_37 AC 592 ms
94,824 KB
testcase_38 AC 532 ms
94,184 KB
testcase_39 AC 520 ms
94,056 KB
testcase_40 AC 527 ms
94,568 KB
testcase_41 AC 673 ms
94,176 KB
testcase_42 AC 584 ms
94,432 KB
testcase_43 AC 612 ms
94,560 KB
testcase_44 AC 714 ms
94,560 KB
testcase_45 AC 736 ms
94,560 KB
testcase_46 AC 723 ms
94,176 KB
testcase_47 AC 709 ms
94,560 KB
testcase_48 AC 722 ms
95,072 KB
testcase_49 AC 613 ms
94,560 KB
testcase_50 AC 704 ms
94,048 KB
testcase_51 AC 633 ms
94,688 KB
testcase_52 AC 728 ms
95,104 KB
testcase_53 AC 603 ms
94,304 KB
testcase_54 AC 639 ms
94,432 KB
testcase_55 AC 599 ms
94,304 KB
testcase_56 AC 767 ms
94,432 KB
testcase_57 AC 768 ms
94,976 KB
testcase_58 AC 740 ms
94,176 KB
testcase_59 AC 834 ms
94,816 KB
testcase_60 AC 780 ms
94,304 KB
testcase_61 AC 114 ms
70,752 KB
testcase_62 AC 113 ms
70,624 KB
testcase_63 AC 115 ms
70,624 KB
testcase_64 AC 120 ms
70,240 KB
testcase_65 AC 115 ms
71,008 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

"""input"""
#int-input
# input = sys.stdin.readline
def II(): return int(input())
def MI(): return map(int, input().split())
def LI(): return list(MI())
#str-input
def SI(): return input()
def MSI(): return input().split()
def SI_L(): return list(SI())
def SI_LI(): return list(map(int, SI()))
#multiple-input
def LLI(n): return [LI() for _ in range(n)]
def LSI(n): return [SI() for _ in range(n)]
#1-indexを0-indexでinput
def MI_1(): return map(lambda x:int(x)-1, input().split())
def TI_1(): return tuple(MI_1())
def LI_1(): return list(MI_1())

from collections import deque,defaultdict,Counter
mod = 998244353

class fenwick_tree():
    n=1
    data=[0 for i in range(n)]
    def __init__(self,N):
        self.n=N
        self.data=[0 for i in range(N)]
    def add(self,p,x):
        assert 0<=p<self.n,"0<=p<n,p={0},n={1}".format(p,self.n)
        p+=1
        while(p<=self.n):
            self.data[p-1]+=x
            p+=p& -p
    def sum(self,l,r):
        assert (0<=l and l<=r and r<=self.n),"0<=l<=r<=n,l={0},r={1},n={2}".format(l,r,self.n)
        return self.sum0(r)-self.sum0(l)
    def sum0(self,r):
        s=0
        while(r>0):
            s+=self.data[r-1]
            r-=r&-r
        return s

#必ず入っている集合を見つける
#必ず以下マン、以上マンを見つける
# 上72回まで
# その後は8回

n = II()

p = [0]*(n+1)
cnt = [0]*(n+10)

#次どこに向かうかを示しておく
for i in range(1,n+1):
    print(1,i,i)
    to = II()
    p[i] = to
    if to != -1:
        cnt[to] += 1
    

ml = 0
for i in range(1,n+1):
    #必ず始点である
    if cnt[i] == 0:
        now = i
        res = [now]
        while p[now] != -1:
            now = p[now]
            res.append(now)
        
        l = len(res)
        if ml < l:
            ml = l
            one = res[:]

o = one[0]
ans = [one[0],one[1]]
for i in range(n-2):
    print(1,o,ans[-1])
    ans.append(II())

res = [0]*n
for i in range(n):
    res[ans[i]-1] = i+1
print(2,*res)
    
    
0