2845 2023. 01. 29 19:24:39 VMGoJo Nomekop cpp14 Elfogadva 100/100 2.065s 4840 KiB
#include <bits/stdc++.h>
#include <cassert>
#include <signal.h>

#define N_MAX 4000

using namespace std;

int N;
int A[N_MAX + 5];
int D[N_MAX + 5];
int P[N_MAX + 5], ans[N_MAX + 5];

bool cmp(int a, int b) { return D[a] < D[b]; }

int main() {
    cin >> N;
    for (int i = 1; i <= N; i++) {
        cin >> A[i];
    }

    sort(A + 1, A + N + 1);

    long long ide;

    cout << "? ";
    for (int i = 1; i <= N; i++) {
        cout << A[i] << " ";
    }
    cout.flush();
    cin >> ide;

    bool first = true;
    int pos = -1;
    for (int i = 2; i <= N; i++) {
        if (A[i] != A[1]) {
            swap(A[i], A[1]);
            cout << "? ";
            for (int j = 1; j <= N; j++) {
                cout << A[j] << " ";
            }
            cout.flush();
            long long query;
            cin >> query;
            D[i] = (ide - query) / (A[1] - A[i]);
            swap(A[i], A[1]);
            if (first) {
                first = false;
                pos = i;
            }
        }
    }

    for (int i = 2; i < pos; i++) {
        swap(A[i], A[pos]);
        cout << "? ";
        for (int j = 1; j <= N; j++) {
            cout << A[j] << " ";
        }
        cout.flush();
        long long query;
        cin >> query;
        int dif = (ide - query) / (A[pos] - A[i]);
        D[i] = dif + D[pos];
        swap(A[i], A[pos]);
    }

    for (int i = 1; i <= N; i++) {
        P[i] = i;
    }
    sort(P + 1, P + N + 1, cmp);

    for (int i = 1; i <= N; i++) {
        ans[P[i]] = A[i];
    }

    cout << "! ";
    for (int i = 1; i <= N; i++) {
        cout << ans[i] << " ";
    }
    cout.flush();
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1896 KiB
subtask2 10/10
2 Elfogadva 2ms 2056 KiB
3 Elfogadva 2ms 2140 KiB
subtask3 30/30
4 Elfogadva 4ms 2340 KiB
5 Elfogadva 37ms 2420 KiB
6 Elfogadva 37ms 2648 KiB
7 Elfogadva 37ms 2764 KiB
8 Elfogadva 4ms 2956 KiB
9 Elfogadva 37ms 3160 KiB
subtask4 20/20
10 Elfogadva 136ms 3172 KiB
11 Elfogadva 136ms 3504 KiB
12 Elfogadva 137ms 3584 KiB
13 Elfogadva 141ms 3584 KiB
subtask5 40/40
14 Elfogadva 2.065s 3892 KiB
15 Elfogadva 2.062s 4032 KiB
16 Elfogadva 1.824s 4084 KiB
17 Elfogadva 1.577s 4316 KiB
18 Elfogadva 2.061s 4332 KiB
19 Elfogadva 2.063s 4356 KiB
20 Elfogadva 2.062s 4752 KiB
21 Elfogadva 2.025s 4840 KiB