Submission #421870

#TimeUsernameProblemLanguageResultExecution timeMemory
421870BertedZagonetka (COI18_zagonetka)C++14
9 / 100
90 ms220 KiB
#include <iostream> using namespace std; int N, A[101], B[101], P[101], Q[101]; bool query() { cout << "query"; for (int i = 0; i < N; i++) cout << " " << B[i]; cout << endl; bool x; cin >> x; return x; } int main() { cin >> N; for (int i = 0; i < N; i++) {cin >> A[i];} for (int i = 0; i < N; i++) { B[i] = A[i]; P[B[i] - 1] = i; } for (int i = 1; i < N; i++) { for (int j = i - 1; j >= 0; j--) { if (P[j + 1] < P[j]) { swap(B[P[j + 1]], B[P[j]]); if (query() == 0) {swap(B[P[j + 1]], B[P[j]]); break;} else swap(P[j + 1], P[j]); } else {break;} } } for (int i = 0; i < N; i++) { B[i] = A[i]; Q[B[i] - 1] = i; } for (int i = 1; i < N; i++) { for (int j = i - 1; j >= 0; j--) { if (Q[j + 1] > Q[j]) { swap(B[Q[j + 1]], B[Q[j]]); if (query() == 0) {swap(B[Q[j + 1]], B[Q[j]]); break;} else swap(Q[j + 1], Q[j]); } else {break;} } } cout << "end" << endl; for (int i = 0; i < N; i++) {B[P[i]] = i;} for (int i = 0; i < N; i++) cout << B[i] + 1 << " \n"[i + 1 == N]; for (int i = 0; i < N; i++) {B[Q[i]] = i;} for (int i = 0; i < N; i++) cout << B[i] + 1 << " \n"[i + 1 == N]; cout << flush; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...