Submission #331265

# Submission time Handle Problem Language Result Execution time Memory
331265 2020-11-27T21:05:33 Z pggp Combo (IOI18_combo) C++14
5 / 100
1 ms 256 KB
#include <bits/stdc++.h>
#include "combo.h"

using namespace std;

string s;



string guess_sequence(int N){
	string cur = "";
	string first = "";
	if(press("A") == 1){
		cur = "A";
	}
	else if(press("B") == 1){
		cur = "B";
	}
	else if(press("X") == 1){
		cur = "X";
	}
	else{
		cur = "Y";
	}
	first = cur;

	for (int i = 0; i < N - 2; ++i)
	{
		if(first == "A"){
			int a = press(cur + "XY" + cur + "XX" + cur + "XB" + cur + "Y");
			//cout << a << endl;
			if(a == cur.size()){
				cur = cur + "B";
			}
			if(a == cur.size() + 1){
				cur = cur + "Y";
			}
			if(a == cur.size() + 2){
				cur = cur + "X";
			}
		}
		if(first == "B"){
			int a = press(cur + "XY" + cur + "XX" + cur + "XA" + cur + "Y");
			if(a == cur.size()){
				cur = cur + "A";
			}
			if(a == cur.size() + 1){
				cur = cur + "Y";
			}
			if(a == cur.size() + 2){
				cur = cur + "X";
			}
		}
		if(first == "X"){
			int a = press(cur + "AY" + cur + "AA" + cur + "AB" + cur + "Y");
			//cout << a <<endl;
			if(a == cur.size()){
				cur = cur + "B";
			}
			if(a == cur.size() + 1){
				cur = cur + "Y";
			}
			if(a == cur.size() + 2){
				cur = cur + "A";
			}
		}
		if(first == "Y"){
			int a = press(cur + "XA" + cur + "XX" + cur + "XB" + cur + "A");
			if(a == cur.size()){
				cur = cur + "B";
			}
			if(a == cur.size() + 1){
				cur = cur + "A";
			}
			if(a == cur.size() + 2){
				cur = cur + "X";
			}
		}
	}

	if(first == "A"){
		if(press(cur + "B") == N){
			cur = cur + "B";
		}
		else if(press(cur + "X") == N){
			cur = cur + "X";
		}
		else{
			cur = cur + "Y";
		}
	}
	else if(first == "B"){
		if(press(cur + "A") == N){
			cur = cur + "A";
		}
		else if(press(cur + "X") == N){
			cur = cur + "X";
		}
		else{
			cur = cur + "Y";
		}
	}
	else if(first == "X"){
		if(press(cur + "B") == N){
			cur = cur + "B";
		}
		else if(press(cur + "A") == N){
			cur = cur + "A";
		}
		else{
			cur = cur + "Y";
		}
	}
	else if(first == "Y"){
		if(press(cur + "B") == N){
			cur = cur + "B";
		}
		else if(press(cur + "X") == N){
			cur = cur + "X";
		}
		else{
			cur = cur + "A";
		}
	}

	return cur;
}

Compilation message

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:32:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |    if(a == cur.size()){
      |       ~~^~~~~~~~~~~~~
combo.cpp:35:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |    if(a == cur.size() + 1){
      |       ~~^~~~~~~~~~~~~~~~~
combo.cpp:38:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |    if(a == cur.size() + 2){
      |       ~~^~~~~~~~~~~~~~~~~
combo.cpp:44:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |    if(a == cur.size()){
      |       ~~^~~~~~~~~~~~~
combo.cpp:47:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |    if(a == cur.size() + 1){
      |       ~~^~~~~~~~~~~~~~~~~
combo.cpp:50:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |    if(a == cur.size() + 2){
      |       ~~^~~~~~~~~~~~~~~~~
combo.cpp:57:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |    if(a == cur.size()){
      |       ~~^~~~~~~~~~~~~
combo.cpp:60:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |    if(a == cur.size() + 1){
      |       ~~^~~~~~~~~~~~~~~~~
combo.cpp:63:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   63 |    if(a == cur.size() + 2){
      |       ~~^~~~~~~~~~~~~~~~~
combo.cpp:69:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |    if(a == cur.size()){
      |       ~~^~~~~~~~~~~~~
combo.cpp:72:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |    if(a == cur.size() + 1){
      |       ~~^~~~~~~~~~~~~~~~~
combo.cpp:75:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   75 |    if(a == cur.size() + 2){
      |       ~~^~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 200 KB Output is correct
2 Correct 0 ms 200 KB Output is correct
3 Correct 1 ms 200 KB Output is correct
4 Correct 1 ms 200 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 200 KB Output is correct
7 Correct 1 ms 200 KB Output is correct
8 Correct 1 ms 200 KB Output is correct
9 Correct 0 ms 200 KB Output is correct
10 Correct 1 ms 200 KB Output is correct
11 Correct 1 ms 200 KB Output is correct
12 Correct 1 ms 200 KB Output is correct
13 Correct 1 ms 200 KB Output is correct
14 Correct 1 ms 200 KB Output is correct
15 Correct 1 ms 200 KB Output is correct
16 Correct 1 ms 200 KB Output is correct
17 Correct 1 ms 200 KB Output is correct
18 Correct 0 ms 256 KB Output is correct
19 Correct 1 ms 256 KB Output is correct
20 Correct 0 ms 200 KB Output is correct
21 Correct 1 ms 200 KB Output is correct
22 Correct 1 ms 200 KB Output is correct
23 Correct 1 ms 200 KB Output is correct
24 Correct 1 ms 200 KB Output is correct
25 Correct 0 ms 200 KB Output is correct
26 Correct 1 ms 200 KB Output is correct
27 Correct 1 ms 200 KB Output is correct
28 Correct 1 ms 200 KB Output is correct
29 Correct 1 ms 236 KB Output is correct
30 Correct 1 ms 200 KB Output is correct
31 Correct 1 ms 200 KB Output is correct
32 Correct 1 ms 200 KB Output is correct
33 Correct 0 ms 200 KB Output is correct
34 Correct 0 ms 200 KB Output is correct
35 Correct 1 ms 200 KB Output is correct
36 Correct 1 ms 200 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 200 KB Wrong Answer: wrong guess.
2 Halted 0 ms 0 KB -