# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
82444 | farukkastamonuda | 콤보 (IOI18_combo) | C++14 | 35 ms | 392 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "combo.h"
#include <bits/stdc++.h>
#define fi first
#define se second
#define lo long long
#define inf 1000000009
#define md 1000000007
#define li 100005
#define mp make_pair
#define pb push_back
#define mid (start+end)/2
using namespace std;
int n;
string y,ana;
char ilk;
string guess_sequence(int N){
ana.clear();
ilk=' ';
n=N;
y="AB";
if(press(y)>=1){
y="A";
if(press(y)>=1){
ilk='A';
}
else ilk='B';
}
else{
y='X';
if(press(y)>=1){
ilk='X';
}
else ilk='Y';
}
ana=ana+ilk;
for(int i=2;i<=n-1;i++){
string t=ana;
t.clear();
int uz=i-1;
if(ilk=='A'){
t=t+'B';
t=t+ana+'X'+'X';
t=t+ana+'X'+'Y';
t=t+ana+'X'+'B';
//t=t+ana+'B';
int sonuc=press(t);
if(sonuc==uz){
ana=ana+'Y';
}
else if(sonuc==uz+1){
ana=ana+'B';
}
else ana=ana+'X';
}
else if(ilk=='B'){
t=t+'A';
t=t+ana+'X'+'X';
t=t+ana+'X'+'Y';
t=t+ana+'X'+'A';
//t=t+ana+'A';
int sonuc=press(t);
if(sonuc==uz){
ana=ana+'Y';
}
else if(sonuc==uz+1){
ana=ana+'A';
}
else ana=ana+'X';
}
else if(ilk=='X'){
t=t+'B';
t=t+ana+'A'+'A';
t=t+ana+'A'+'Y';
t=t+ana+'A'+'B';
//t=t+'B';
int sonuc=press(t);
if(sonuc==uz){
ana=ana+'Y';
}
else if(sonuc==uz+1){
ana=ana+'B';
}
else ana=ana+'A';
}
else if(ilk=='Y'){
t=t+'B';
t=t+ana+'A'+'A';
t=t+ana+'A'+'X';
t=t+ana+'A'+'B';
//t=t+ana+'B';
int sonuc=press(t);
if(sonuc==uz){
ana=ana+'X';
}
else if(sonuc==uz+1){
ana=ana+'B';
}
else ana=ana+'A';
}
}
if(n==1) return ana;
string g;
g.clear();
if(ilk=='A'){
g=ana+'B'+ana+'X';
int sonuc=press(g);
if(sonuc==n-1){
ana=ana+'Y';
return ana;
}
g=ana+'B';
sonuc=press(g);
if(sonuc==n-1){
ana=ana+'X';
return ana;
}
ana=ana+'B';
return ana;
}
//
else if(ilk=='B'){
g=ana+'A'+ana+'X';
int sonuc=press(g);
if(sonuc==n-1){
ana=ana+'Y';
return ana;
}
g=ana+'A';
sonuc=press(g);
if(sonuc==n-1){
ana=ana+'X';
return ana;
}
ana=ana+'A';
return ana;
}
//
else if(ilk=='X'){
g=ana+'B'+ana+'A';
int sonuc=press(g);
if(sonuc==n-1){
ana=ana+'Y';
return ana;
}
g=ana+'B';
sonuc=press(g);
if(sonuc==n-1){
ana=ana+'A';
return ana;
}
ana=ana+'B';
return ana;
}
else if(ilk=='Y'){
g=ana+'B'+ana+'X';
int sonuc=press(g);
if(sonuc==n-1){
ana=ana+'A';
return ana;
}
g=ana+'B';
sonuc=press(g);
if(sonuc==n-1){
ana=ana+'X';
return ana;
}
ana=ana+'B';
return ana;
}
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |