Submission #1295477

#TimeUsernameProblemLanguageResultExecution timeMemory
1295477jahongirPassword (RMI18_password)C++20
10 / 100
1 ms416 KiB
#include <bits/stdc++.h>
using namespace std;


int query(string s);


string guess(int n, int s){
	
	vector<string> res(s);
	vector<int> val(s);

	priority_queue<pair<int,int>> pq;
	
	for(int i = 0; i < s; i++){
		val[i] = query(string(n,char(i+'a')));
		if(val[i]){
			res[i] = string(val[i],char(i+'a'));
			pq.push({val[i],i});
		}
	}

	
	while(pq.size() > 1){
		auto [l1,i] = pq.top(); pq.pop();
		auto [l2,j] = pq.top(); pq.pop();

		string tmp = res[j];
	
		for(int k = 0, cur = 0; k < l1; k++){
			tmp.insert(tmp.begin()+cur,res[i][k]);
			if(query(tmp)==l2+k+1){
				cur++;		
			}else{	
				swap(tmp[cur],tmp[cur+1]);
				cur+=2;
			}
		}

		res[i] = tmp;
		val[i] = l1+l2;

		pq.push({l1+l2,i});

	}
	auto [u,v] = pq.top();
	return res[v];	
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...