제출 #597994

#제출 시각아이디문제언어결과실행 시간메모리
597994jamezzzOn the Grid (FXCUP4_grid)C++17
100 / 100
16 ms400 KiB
#include "grid.h" #include <bits/stdc++.h> using namespace std; bool use[1005]; deque<int> dq; //vector<int> done; set<pair<int,int>> done; int ask(){ vector<int> v; for(int i:dq)v.push_back(i); for(auto it:done)v.push_back(it.second); //printf("ask: "); //for(int i:v)printf("%d ",i); //printf("\n"); return PutDisks(v); } vector<int> SortDisks(int N){ for(int i=0;i<N;++i)dq.push_back(i); vector<int> ans(N); int pv=ask(); while(!dq.empty()){ if(dq.size()==1){ for(int i=1;i<=N;++i){ if(!use[i])ans[dq[0]]=i; } break; } //if(toask)pv=ask(); while(true){ int x=dq.back(); dq.pop_back(); dq.push_front(x); int cur=ask(); //printf("res: %d\n",cur); /* if(cur<pv&&dq.size()==2){ swap(cur,pv); swap(dq[0],dq[1]); } */ if(cur>=pv){ int res=cur-N+1; use[res]=true; ans[dq.front()]=res; //printf("fix: %d %d\n",dq.front(),res); done.insert({res,dq.front()}); dq.pop_front(); break; } pv=cur; } } //printf("ans: "); //for(int i:ans)printf("%d ",i); //printf("\n"); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...