Submission #568708

#TimeUsernameProblemLanguageResultExecution timeMemory
568708jamielimSuper Dango Maker (JOI22_dango3)C++17
0 / 100
6068 ms1048576 KiB
#include "dango3.h"
#include <bits/stdc++.h>
using namespace std;

int n;

void solve(vector<int> v,int dangos){
	if(dangos==1){
		Answer(v);
		return;
	}
	int d=(dangos+1)/2;
	set<int> s,t;
	for(int i:v)s.insert(i);
	for(auto it=s.begin();it!=s.end();++it){
		vector<int> q;
		for(auto it2=s.begin();it2!=s.end();++it){
			if(it2==it)continue;
			q.push_back(*it2);
		}
		if(Query(q)>=d){ // sum of SZ(s) over all calls to solve -> (sum of dangos)*n?
			t.insert(*it);
			s.erase(it);
			if((int)s.size()==d*n)break;
		}
	}
	vector<int> vs,vt;
	for(int i:s)vs.push_back(i);
	for(int i:t)vt.push_back(i);
	solve(vs,d);
	solve(vt,dangos-d);
}

void Solve(int N, int M) {
	n=N;
	vector<int> v;
	for(int i=0;i<N;i++){
		for(int j=0;j<M;j++){
			v.push_back(M*i+j+1);
		}
	}
	solve(v,M);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...