답안 #643473

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
643473 2022-09-22T06:12:06 Z christinelynn Zagonetka (COI18_zagonetka) C++17
9 / 100
9 ms 336 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<ll> vll;
const ll mod=1e9+7;
const ll maxn=2e5+5;
const int INF=1e9;
#define ok ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define fi first
#define se second
#define pb push_back
#define ub upper_bound
#define lb lower_bound
#define endl '\n'
int n, arr[maxn], ans[maxn], jwb, ans1[maxn], ans2[maxn], p1, p2;
bool udh;
int main() {
    ok
    cin >> n;
    for(int i=1; i<=n; i++) cin >> arr[i];
    if(n<=6) {
        for(int i=0; i<n; i++) ans[i]=i+1;
        do {
            cout << "query";
            for(int i=0; i<n; i++) cout << " " << ans[i];
            cout << endl;
            cout.flush();
            cin >> jwb;
            if(jwb==1) {
                if(!udh) {
                    for(int i=0; i<n; i++) ans1[i]=ans[i];
                    udh=1;
                }
                for(int i=0; i<n; i++) ans2[i]=ans[i];
            }
        } while(next_permutation(ans, ans+n));
        cout << "end" << endl;
        for(int i=0; i<n; i++) cout << ans1[i] << " ";
        cout << endl;
        for(int i=0; i<n; i++) cout << ans2[i] << " ";
        cout << endl;
        cout.flush();
        return 0;
    }
    for(int i=0; i<n; i++) ans[i]=i+1;
    cout << "query";
    for(int i=0; i<n; i++) cout << " " << ans[i];
    cout << endl;
    cout.flush();
    cin >> jwb;
    if(jwb==1) {
        for(int i=0; i<n; i++) ans1[i]=i+1;
        for(int i=0; i<n; i++) {
            for(int j=i+1; j<n; j++) {
                swap(ans1[i], ans1[j]);
                cout << "query";
                for(int k=0; k<n; k++) cout << " " << ans1[k];
                cout << endl;
                cout.flush();
                cin >> jwb;
                swap(ans1[i], ans1[j]);
                if(jwb==0) {
                    p1=i;
                    p2=j;
                    break;
                }
            }
            if(p1+p2>0) break;
        }
        int cur=n;
        for(int i=0; i<n; i++) {
            if(i==p1) {
                ans2[i]=cur-1;
                ans2[p2]=cur;
                cur-=2;
            } else if(i!=p2) {
                ans2[i]=cur--;
            }
        }
        cout << "end" << endl;
        for(int i=0; i<n; i++) cout << ans1[i] << " ";
        cout << endl;
        for(int i=0; i<n; i++) cout << ans2[i] << " ";
        cout << endl;
        cout.flush();
        return 0;
    } else {
        for(int i=0; i<n; i++) ans1[n-i-1]=i+1;
        for(int i=0; i<n; i++) {
            for(int j=i+1; j<n; j++) {
                swap(ans1[i], ans1[j]);
                cout << "query";
                for(int k=0; k<n; k++) cout << " " << ans1[k];
                cout << endl;
                cout.flush();
                cin >> jwb;
                swap(ans1[i], ans1[j]);
                if(jwb==0) {
                    p1=i;
                    p2=j;
                    break;
                }
            }
            if(p1+p2>0) break;
        }
        int cur=1;
        for(int i=0; i<n; i++) {
            if(i==p1) {
                ans2[i]=cur+1;
                ans2[p2]=cur;
                cur+=2;
            } else if(i!=p2) {
                ans2[i]=cur++;
            }
        }
        cout << "end" << endl;
        for(int i=0; i<n; i++) cout << ans2[i] << " ";
        cout << endl;
        for(int i=0; i<n; i++) cout << ans1[i] << " ";
        cout << endl;
        cout.flush();
        return 0;
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 336 KB Output is correct
4 Correct 2 ms 336 KB Output is correct
5 Correct 7 ms 336 KB Output is correct
6 Correct 7 ms 336 KB Output is correct
7 Correct 9 ms 336 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -