답안 #890104

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
890104 2023-12-20T14:32:22 Z avighna Snake Escaping (JOI18_snake_escaping) C++17
0 / 100
21 ms 65536 KB
#include <bits/stdc++.h>

using namespace std;

#define ll long long

const ll L = 20;

class Node {
public:
  vector<ll> x;
};

string s;

Node seg[4 * (1 << L)];

void construct(ll v, ll tl, ll tr) {
  if (tl == tr) {
    seg[v].x.resize(1);
    seg[v].x[0] = s[tl] - '0';
    return;
  }

  ll tm = (tl + tr) / 2;
  construct(2 * v, tl, tm);
  construct(2 * v + 1, tm + 1, tr);
  seg[v].x.resize(seg[2 * v].x.size() * 3);
  for (ll i = 0; i < 3; ++i) {
    for (ll j = 0; j < seg[2 * v].x.size(); ++j) {
      if (i == 0) {
        seg[v].x[3 * j + i] = seg[2 * v].x[j];
      } else if (i == 1) {
        seg[v].x[3 * j + i] = seg[2 * v + 1].x[j];
      } else {
        seg[v].x[3 * j + i] = seg[2 * v].x[j] + seg[2 * v + 1].x[j];
      }
    }
  }
}

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);

  ll l, q;
  cin >> l >> q;
  cin >> s;
  construct(1, 0, (1LL << l) - 1);

  while (q--) {
    string sq;
    cin >> sq;
    ll x = 0;
    for (ll i = sq.length() - 1; i >= 0; --i) {
      char c = sq[i];
      if (c == '?') {
        c = '2';
      }
      x = 3 * x + (c - '0');
    }
    cout << seg[1].x[x] << "\n";
  }
}

Compilation message

snake_escaping.cpp: In function 'void construct(long long int, long long int, long long int)':
snake_escaping.cpp:30:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |     for (ll j = 0; j < seg[2 * v].x.size(); ++j) {
      |                    ~~^~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Runtime error 21 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 21 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 21 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 21 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 21 ms 65536 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -