Submission #1043936

#TimeUsernameProblemLanguageResultExecution timeMemory
1043936vjudge1Zagonetka (COI18_zagonetka)C++17
9 / 100
40 ms344 KiB
#include <bits/stdc++.h> using namespace std; const int N = 105; int n, a[N], b[N], s[N]; bool edge[N][N]; bool ask(int* q){ cout << "query "; for (int i = 0; i < n; i ++){ cout << q[i] << " "; } cout << endl; bool res; cin >> res; return res; } int main(){ cin >> n; for (int i = 0; i < n; i ++) cin >> a[i], s[i] = b[i] = a[i]; for (int ii = 0; ii < n * n; ii ++){ bool did = 0; for (int i = 0; i < n; i ++){ for (int j = i + 1; j < n; j ++){ if (s[i] < s[j]) continue; swap(s[i], s[j]); if (ask(s)) did = 1; else swap(s[i], s[j]); } } if (!did) break; } for (int ii = 0; ii < n * n; ii ++){ bool did = 0; for (int i = 0; i < n; i ++){ for (int j = i + 1; j < n; j ++){ if (b[i] > b[j]) continue; swap(b[i], b[j]); if (ask(b)) did = 1; else swap(b[i], b[j]); } } if (!did) break; } cout << "end" << endl; for (int i = 0; i < n; i ++) cout << s[i] << " "; cout << endl; for (int i = 0; i < n; i ++) cout << b[i] << " "; cout << endl; return 0; for (int i = 0; i < n; i ++){ for (int j = i + 1; j < n; j ++){ if (a[i] < a[j]){ swap(a[i], a[j]); if (!ask(a)) edge[i][j] = 1; swap(a[i], a[j]); } else{ swap(a[i], a[j]); if (!ask(a)) edge[j][i] = 1; swap(a[i], a[j]); } } } cout << "end" << endl; for (int i = 0; i < n; i ++){ s[i] = i + 1; for (int j = 0; j < i; j ++){ if (edge[i][j]) s[i] = min(s[i], s[j]); } cout << i << " : " << s[i] << endl; for (int j = 0; j < i; j ++){ if (s[j] >= s[i]) s[j]++; } } for (int i = 0; i < n; i ++) cout << s[i] << " "; cout << endl; for (int i = 0; i < n; i ++){ b[i] = n - i; for (int j = 0; j < i; j ++){ if (edge[j][i]) b[i] = max(b[i], b[j]); } for (int j = 0; j < i; j ++) if (b[j] <= b[i]) b[j]--; } for (int i = 0; i < n; i ++) cout << b[i] << " "; cout << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...