Submission #1315767

#TimeUsernameProblemLanguageResultExecution timeMemory
1315767vlomaczkPassword (RMI18_password)C++20
30 / 100
17 ms464 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
typedef long long ll;
using namespace __gnu_pbds;
using namespace std;

template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

int query(string str);
int N;

string Merge(string s1, string s2) {
   	string s = "";
	int i=0,j=0;
	while(i<s1.size() && j<s2.size()) {
		string q = s;
		q.push_back(s1[i]);
		for(int x=j; x<s2.size(); ++x) q.push_back(s2[x]);
		if(query(q)==q.size()) {
			s.push_back(s1[i++]);
		} else {
			s.push_back(s2[j++]);
		}
	}
	while(i<s1.size()) s.push_back(s1[i++]);
	while(j<s2.size()) s.push_back(s2[j++]);
	return s;
}

string MergeSort(vector<string> t) {
	if(t.size()==0) return "";
	if(t.size()==1) return t[0];
	vector<string> t1, t2;
	int n =t.size();
	for(int i=0; i<n/2; ++i) t1.push_back(t[i]);
	for(int i=n/2; i<n; ++i) t2.push_back(t[i]);
	return Merge(MergeSort(t1),MergeSort(t2));
}

string pwt(char c, int x) {
	string s = "";
	for(int i=0; i<x; ++i) s.push_back(c);
	return s;
}

string guess(int n, int S) {
	N=n;
	string alph = "abcdefghijklmnopqrstuvwxyz";
	vector<string> tab; 
	for(int i=0; i<S; ++i) {
		tab.push_back(pwt(alph[i], query(pwt(alph[i],n))));
	}
	return MergeSort(tab);
}
#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...