제출 #207073

#제출 시각아이디문제언어결과실행 시간메모리
207073istleminPassword (RMI18_password)C++14
100 / 100
280 ms600 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") using namespace std; #define rep(i, a, b) for(ll i = a; i < ll(b); ++i) #define rrep(i, a, b) for(ll i = b-1; i >= ll(a); --i) #define trav(a, x) for(auto& a : x) #define all(x) x.begin(), x.end() #define sz(x) (ll)(x).size() typedef long long ll; typedef pair<ll, ll> pii; typedef vector<ll> vi; int query(string str); string combine(string a, string b){ string ans = ""; //cout<<a<<" "<<b<<endl; while(b.size()&&a.size()){ if(query(ans+b[0]+a)==sz(ans)+sz(a)+1){ ans += b[0]; b.erase(b.begin()); } else { ans += a[0]; a.erase(a.begin()); } } ans+=b; ans+=a; //cout<<ans<<endl; return ans; } string guess(int n, int s){ vector<string> v; rep(i,0,s) { v.push_back(string(query(string(n,'a'+i)),'a'+i)); //cout<<v.back()<<endl; } while(v.size()>=2){ vector<string> newV; rep(i,0,v.size()/2) newV.push_back(combine(v[2*i],v[2*i+1])); if(v.size()%2==1) newV.push_back(v.back()); v = newV; } return v[0]; }
#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...