Submission #900652

#TimeUsernameProblemLanguageResultExecution timeMemory
900652alexander707070Super Dango Maker (JOI22_dango3)C++17
100 / 100
671 ms1152 KiB
#include<bits/stdc++.h> #include "dango3.h" using namespace std; int n,m; int li[10007],tim; vector<int> v; void solve(vector<int> el){ if(el.size()==n){ Answer(el); return; } int half=(el.size()/n)/2; vector<int> curr,rest; deque<int> d; int l=half*n,r=el.size(),mid; while(l+1<r){ mid=(l+r)/2; curr.clear(); for(int p=0;p<mid;p++){ curr.push_back(el[p]); } if(Query(curr)>=half){ r=mid; }else{ l=mid; } } curr.clear(); for(int i=0;i<r;i++)curr.push_back(el[i]); for(int i:curr)d.push_back(i); int sz=curr.size(),rem=0; for(int i=0;i<sz;i++){ rem=d.back(); d.pop_back(); curr={}; for(int f=0;f<d.size();f++){ curr.push_back(d[f]); } if(Query(curr)==half)continue; else d.push_front(rem); if(int(d.size())==half*n)break; } tim++; curr.clear(); for(int i=0;i<d.size();i++){ curr.push_back(d[i]); li[d[i]]=tim; } for(int i=0;i<el.size();i++){ if(li[el[i]]!=tim){ rest.push_back(el[i]); } } solve(curr); solve(rest); } void Solve(int N, int M){ n=N; m=M; for(int i=1;i<=n*m;i++){ v.push_back(i); } solve(v); }

Compilation message (stderr)

dango3.cpp: In function 'void solve(std::vector<int>)':
dango3.cpp:12:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   12 |     if(el.size()==n){
      |        ~~~~~~~~~^~~
dango3.cpp:48:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |         for(int f=0;f<d.size();f++){
      |                     ~^~~~~~~~~
dango3.cpp:59:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |     for(int i=0;i<d.size();i++){
      |                 ~^~~~~~~~~
dango3.cpp:64:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   64 |     for(int i=0;i<el.size();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...