Submission #554907

# Submission time Handle Problem Language Result Execution time Memory
554907 2022-04-29T14:58:25 Z d4xn Combo (IOI18_combo) C++17
5 / 100
1 ms 336 KB
#include "combo.h"

#pragma GCC optimize ("Ofast")
#include <bits/stdc++.h>
using namespace std;

#define pb push_back

string guess_sequence(int N) {
  string p;

  string dict1 = "ABXY";

  int x = press("AB");
  if (x >= 1) {
    if (press("A")) {
      p.pb('A');
    }
    else {
      p.pb('B');
    }
  }
  else {
    if (press("X")) {
      p.pb('X');
    }
    else {
      p.pb('Y');
    }
  }

  string dict2;
  for (char &c : dict1) {
    if (c == p[0]) continue;
    dict2.pb(c);
  }

  for (int i = 1; i < N-1; i++) {
    string s1 = p;
    s1.pb(dict2[0]);

    string s2 = p;
    s2.pb(dict2[1]);
    s2.pb(dict2[0]);

    string s3 = p;
    s3.pb(dict2[1]);
    s3.pb(dict2[1]);

    string s4 = p;
    s4.pb(dict2[1]);
    s4.pb(dict2[2]);

    string total = s1 + s2 + s3 + s4;
    cerr << total << endl;
    assert(total.size() <= 4*N);
    int y = press(total);
    if (y == i+1) {
      p.pb(dict2[0]);
    }
    else if (y == i+2) {
      p.pb(dict2[1]);
    }
    else {
      p.pb(dict2[2]);
    }
  }

  assert(p.size() == N-1);
  for (int i = 0; i < 2; i++) {
    char c = dict2[i];
    p.pb(c);
    if (press(p) == N) break;
    p.pop_back();
  }

  if (p.size() < N) {
    p.pb(dict2[2]);
  }

  return p;
}

Compilation message

In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from combo.cpp:4:
combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:56:25: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   56 |     assert(total.size() <= 4*N);
      |            ~~~~~~~~~~~~~^~~~~~
combo.cpp:69:19: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   69 |   assert(p.size() == N-1);
      |          ~~~~~~~~~^~~~~~
combo.cpp:77:16: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   77 |   if (p.size() < N) {
      |       ~~~~~~~~~^~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 1 ms 208 KB Output is correct
4 Correct 0 ms 304 KB Output is correct
5 Correct 1 ms 208 KB Output is correct
6 Correct 1 ms 208 KB Output is correct
7 Correct 0 ms 208 KB Output is correct
8 Correct 1 ms 208 KB Output is correct
9 Correct 1 ms 208 KB Output is correct
10 Correct 1 ms 208 KB Output is correct
11 Correct 1 ms 208 KB Output is correct
12 Correct 1 ms 208 KB Output is correct
13 Correct 0 ms 208 KB Output is correct
14 Correct 0 ms 208 KB Output is correct
15 Correct 1 ms 208 KB Output is correct
16 Correct 0 ms 208 KB Output is correct
17 Correct 1 ms 208 KB Output is correct
18 Correct 1 ms 208 KB Output is correct
19 Correct 1 ms 208 KB Output is correct
20 Correct 1 ms 208 KB Output is correct
21 Correct 1 ms 208 KB Output is correct
22 Correct 1 ms 300 KB Output is correct
23 Correct 0 ms 208 KB Output is correct
24 Correct 1 ms 208 KB Output is correct
25 Correct 1 ms 208 KB Output is correct
26 Correct 1 ms 208 KB Output is correct
27 Correct 1 ms 208 KB Output is correct
28 Correct 1 ms 208 KB Output is correct
29 Correct 1 ms 208 KB Output is correct
30 Correct 1 ms 208 KB Output is correct
31 Correct 1 ms 208 KB Output is correct
32 Correct 1 ms 208 KB Output is correct
33 Correct 1 ms 208 KB Output is correct
34 Correct 1 ms 300 KB Output is correct
35 Correct 1 ms 208 KB Output is correct
36 Correct 1 ms 208 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 336 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -