Submission #479974

#TimeUsernameProblemLanguageResultExecution timeMemory
479974Evang콤보 (IOI18_combo)C++17
30 / 100
73 ms484 KiB
#include <bits/stdc++.h>
using namespace std;

#ifdef _DEBUG
#define dout(x) clog << "Line " << __LINE__ << ": " << #x << "=" << (x) << el
#else
#define dout(x)
#endif

#define mp(a, b) make_pair(a, b)
#define mt(args...) make_tuple(args)
#define pb(x) push_back(x)
#define eb(args...) emplace_back(args)
#define ff first
#define ss second
#define DIE exit(0)

template<typename T>
using vc = vector<T>;
template<typename T>
using uset = unordered_set<T>;
template<typename A, typename B>
using umap = unordered_map<A, B>;
template<typename T, typename Comp>
using pq = priority_queue<T, vc<T>, Comp>;
template<typename T>
using maxpq = pq<T, less<T>>;
template<typename T>
using minpq = pq<T, greater<T>>;

using db = double;
using ld = long double;
using ll = long long;
using ull = unsigned long long;
using pi = pair<int, int>;
using pll = pair<ll, ll>;
using vi = vc<int>;
using vll = vc<ll>;
using vpi = vc<pi>;
using vpll = vc<pll>;
using str = string;

constexpr char el = '\n';
constexpr char sp = ' ';
constexpr int inf = 0x3f3f3f3f;
constexpr ll llinf = 0x3f3f3f3f3f3f3f3fLL;
// ---------------------------------------------------------------------


const char c[] = {'A', 'B', 'X', 'Y'};
int press(str p);
str guess_sequence(int n){
	str s;
	while(s.size()<n){
		int L = 0, R = 3;
		while(L<R){
			int m = (L+R)/2;
			str t;
			for(int i = L; i <= m; ++i)
				t += s + c[i];
			if(press(t)>s.size())
				R = m;
			else
				L = m+1;
		}
		s += c[L];
	}
	return s;
}

#ifdef _DEBUG
signed main() {
	ios::sync_with_stdio(0);

	int n;
	cin >> n;
	cout << guess_sequence(n);
}

int press(string p){
	cout << p << el;
	int ans;
	cin >> ans;
	return ans;
}
#endif

Compilation message (stderr)

combo.cpp: In function 'str guess_sequence(int)':
combo.cpp:54:16: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 |  while(s.size()<n){
      |        ~~~~~~~~^~
combo.cpp:61:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |    if(press(t)>s.size())
      |       ~~~~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...