1371 2022. 08. 02 11:03:55 mraron Nomekop cpp14 Elfogadva 100/100 2.115s 4468 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 1900 KiB
subtask2 10/10
2 Elfogadva 2ms 1932 KiB
3 Elfogadva 2ms 2124 KiB
subtask3 30/30
4 Elfogadva 4ms 2324 KiB
5 Elfogadva 37ms 2520 KiB
6 Elfogadva 37ms 2592 KiB
7 Elfogadva 37ms 2584 KiB
8 Elfogadva 4ms 2716 KiB
9 Elfogadva 37ms 2936 KiB
subtask4 20/20
10 Elfogadva 136ms 2980 KiB
11 Elfogadva 145ms 3236 KiB
12 Elfogadva 136ms 3428 KiB
13 Elfogadva 135ms 3496 KiB
subtask5 40/40
14 Elfogadva 2.063s 4008 KiB
15 Elfogadva 2.115s 3956 KiB
16 Elfogadva 1.825s 3908 KiB
17 Elfogadva 1.567s 3916 KiB
18 Elfogadva 2.065s 4128 KiB
19 Elfogadva 2.049s 4184 KiB
20 Elfogadva 2.068s 4328 KiB
21 Elfogadva 2.045s 4468 KiB