107942024-04-13 22:39:24pythonNomekoppython3Időlimit túllépés 60/1005.081s15496 KiB
import sys

input=sys.stdin.readline

def solv():
    n = int(input())
    N = [int(s) for s in input().split()]
    if n==1:
        print('!',*N)
        sys.stdout.flush()
        return
    N.sort()
    NN=N[:]
    if N[0]==N[-1]:
        print('!',*N)
        sys.stdout.flush()
        return
    A=[0]*n
    print('?',*N)
    sys.stdout.flush()
    ans = int(input())
    N[0],N[-1]=N[-1],N[0]
    M=N[:]
    print('?',*N)
    sys.stdout.flush()
    newans = int(input())
    A[0]=(ans-newans)//(N[-1]-N[0])
    done=2
    i=0
    last=newans
    while done<n and N[i] != N[i+1]:
        N[i],N[i+1]=N[i+1],N[i]
        print('?',*N)
        sys.stdout.flush()
        new = int(input())
        A[i+1]=A[i]-(last-new)//(N[i+1]-N[i])
        done+=1
        i+=1
        last=new
    i=n-1
    last=newans
    while done<n and M[i] != M[i-1]:
        M[i],M[i-1]=M[i-1],M[i]
        print('?',*M)
        sys.stdout.flush()
        new = int(input())
        A[i-1]=A[i]-(last-new)//(N[i-1]-N[i])
        done+=1
        i-=1
        last=new
    #print(A)
    # NN sorted
    AA=[(A[i],i) for i in range(n)]
    AA.sort()
    for i in range(n):
        N[AA[i][1]]=NN[i]
    print('!',*N)
    sys.stdout.flush()
    return

solv()
exit()

RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva19ms11648 KiB
subtask210/10
2Elfogadva18ms11880 KiB
3Elfogadva18ms12164 KiB
subtask330/30
4Elfogadva23ms12324 KiB
5Elfogadva115ms12608 KiB
6Elfogadva115ms12912 KiB
7Elfogadva116ms13400 KiB
8Elfogadva24ms13108 KiB
9Elfogadva115ms13528 KiB
subtask420/20
10Elfogadva395ms14280 KiB
11Elfogadva388ms13984 KiB
12Elfogadva391ms14356 KiB
13Elfogadva389ms14424 KiB
subtask50/40
14Időlimit túllépés5.078s6604 KiB
15Időlimit túllépés5.081s6576 KiB
16Időlimit túllépés5.079s6520 KiB
17Elfogadva4.502s15496 KiB
18Futási hiba2.858s14884 KiB
19Futási hiba2.903s15272 KiB
20Időlimit túllépés5.064s6936 KiB
21Futási hiba4.408s15456 KiB