1979F - Kostyanych's Theorem - CodeForces Solution


brute force constructive algorithms graphs interactive

Please click on ads to support us..

Python Code:

import sys

q = lambda d: print("? %d" % d, flush=True) or map(int, (input().split()))

for _ in range(int(input())):
    vx, ops = set(i for i in range(1, int(input()) + 1)), []
    while len(vx) > 2:
        v1, v2 = q(len(vx) - 2)
        vx.remove(v1)
        if v2 > 0:
            ops += [(v1, v2)]
        else:
            v3, _ = q(0)
            vx.remove(v3)
            ops += [(v3, 0), (v1, 0)]
    p1, p2 = list(vx), []
    for v1, v2 in ops[::-1]:
        (p2 if p1[-1] == v2 else p1).append(v1)
    print("! %s" % ' '.join(map(str, p1[::-1] + p2)), flush=True)


Comments

Submit
0 Comments
More Questions

1473A - Replacing Elements
959A - Mahmoud and Ehab and the even-odd game
78B - Easter Eggs
1455B - Jumps
1225C - p-binary
1525D - Armchairs
1257A - Two Rival Students
1415A - Prison Break
1271A - Suits
259B - Little Elephant and Magic Square
1389A - LCM Problem
778A - String Game
1382A - Common Subsequence
1512D - Corrupted Array
667B - Coat of Anticubism
284B - Cows and Poker Game
1666D - Deletive Editing
1433D - Districts Connection
2B - The least round way
1324A - Yet Another Tetris Problem
246B - Increase and Decrease
22E - Scheme
1566A - Median Maximization
1278A - Shuffle Hashing
1666F - Fancy Stack
1354A - Alarm Clock
1543B - Customising the Track
1337A - Ichihime and Triangle
1366A - Shovels and Swords
919A - Supermarket