제출 #315270

#제출 시각아이디문제언어결과실행 시간메모리
315270SeanliuMouse (info1cup19_mouse)C++14
0 / 100
1 ms256 KiB
#include <iostream> #include <vector> #include "grader.h" using namespace std; const int maxN = 326; int ans[maxN], ANS[maxN], N; bool has[maxN]; /* int query(vector<int> q){ int ans = 0; //cout << "Asking: "; for(int i = 1; i <= N; i++){ //cout << q[i] << " "; ans += (q[i] == ANS[i]); } //cout << endl; return ans; } */ void solve(int N){ vector<int> q; for(int i = 0; i < N; i++){ fill(has, has + N + 1, false); vector<int>().swap(q); for(int j = 0; j < i; j++){ q.push_back(ans[j]); has[ans[j]] = true; } for(int j = 1; j <= N; j++) if(!has[j]){ q.push_back(j); } int baseline = query(q), asked = i; if(baseline == N) return; for(int j = i + 1; j < N; j++){ swap(q[j], q[i]); int res = query(q); if(res == N) return; if(res > baseline){ asked = j; baseline = res; } swap(q[j], q[i]); } //cout << "ans[" << i << "] = " << q[asked] << endl; ans[i] = q[asked]; } vector<int>().swap(q); q.resize(N); for(int i = 0; i < N; i++) q[i] = ans[i]; query(q); } /* int main(){ cin >> N; for(int i = 1; i <= N; i++) cin >> ANS[i]; solve(N); } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...