제출 #1319651

#제출 시각아이디문제언어결과실행 시간메모리
1319651Muhammad_AneeqSuper Dango Maker (JOI22_dango3)C++20
100 / 100
758 ms820 KiB
#include "dango3.h" #include <bits/stdc++.h> using namespace std; void Solve(int n, int m) { vector<vector<int>>ans; ans.push_back({n*m}); vector<int>que; for (int i=1;i<=n*m-2;i++) que.push_back(i); int pre=m-ans.size(); while (que.size()) { pre=m-ans.size(); int f=que.back(); vector<int>inds; for (int i=0;i<ans.size();i++) { if (ans[i].size()!=n) inds.push_back(i); } int st=-2,en=inds.size(); while (st+1<en) { int mid=(st+en)/2; vector<int>g=que; for (int j=0;j<=mid;j++) { for (auto k:ans[inds[j]]) g.push_back(k); } int f=Query(g); if (f==pre+mid+1) st=mid; else en=mid; } if (en==-1) { en=inds.size(); inds.push_back(ans.size()); ans.push_back({}); } // cout<<inds[en]<<' '<<f+1<<' '<<pre<<endl; ans[inds[en]].push_back(f+1); que.pop_back(); } for (auto& i:ans) { if (i.size()!=n) i.push_back(1); } for (auto i:ans) Answer(i); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...