제출 #1345321

#제출 시각아이디문제언어결과실행 시간메모리
1345321nanaseyuzuki콤보 (IOI18_combo)C++20
30 / 100
7 ms456 KiB
#include <bits/stdc++.h>
#include "combo.h"
#define ll long long
#define fi first
#define se second
#define pii pair<int, int>
#define all(a) a.begin(), a.end()
using namespace std;

#ifdef LOCAL
#include "C:\Users\Dell\Downloads\template\template\icpc-notebook\Utilities\debug.h"
#else
#define debug(...) 42
#endif

const int mn = 5e5 + 5, mod = 1e9 + 7, inf = 2e9;

string s, st; 

// int press(string x) {
// 	int mx = 0;
// 	for(int i = 0; i < (int) x.size(); i++) {
// 		int cnt = 0;
// 		while(true) {
// 			if(x[i + cnt] == st[cnt] && cnt < (int)st.size() - 1 && i + cnt < (int)x.size() - 1) cnt ++;
// 			else {
// 				if((cnt == (int) st.size() - 1 || i + cnt == (int)x.size() - 1) && x[i + cnt] == st[cnt]) cnt ++;
// 				mx = max(mx, cnt);
// 				break;
// 			}
// 			debug(i, cnt, mx);
// 		}
// 	}
// 	debug(x, st, mx);
// 	return mx;
// }

string guess_sequence(int n) {
	int num = press("AB");
	char ban;
	if(num >= 1) {
		if(press("A") == 1) ban = 'A';
		else ban = 'B';
	}
	else {
		if(press("X") == 1) ban = 'X';
		else ban = 'Y';
	}
	s += ban;

	vector <char> all = {'A', 'B', 'X', 'Y'};
	auto it = find(all.begin(), all.end(), ban);
	if(it != all.end()) {
	    all.erase(it);
	}
	for(int i = 1; i < n; i++) {
	    bool ok = false;
	    for(int j = 0; j < 2; j++) {
	        if(press(s + all[j]) == s.size() + 1) {
	            s += all[j];
	            ok = true;
	            break;
	        }
	    }
	    if(!ok) s += all[2];
	}
	return s;
}

// int main() {
// 	cin >> st;
// 	cout << guess_sequence(st.size()) << '\n';
// }
// Don't wanna lose anymore T_T
// Never let me go - Kazuo Ishiguro
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...