Submission #1143223

#TimeUsernameProblemLanguageResultExecution timeMemory
1143223yusybossWalk (POI13_spa)C++20
24 / 100
190 ms62772 KiB
#include <iostream>

using namespace std;


const int NMAX = 22;
const int KMAX = (1 << NMAX) - 1;

int viz[(1 << NMAX) + 1];

int n;
void dfs(int node) {
    viz[node] = 1;

    for (int i = 0; i < n; ++i) {
      if (viz[node ^ (1 << i)] == 0)
        dfs(node ^ (1 << i));
    }
}

int main() {
  int k, i, j, x, y;
  string s, s1, s2;
  cin >> n >> k;
  cin >> s1 >> s2;

  x = y = 0;
  for (i = 0; i < n; ++i) {
      x = 2 * x + (s1[i] - '0');
      y = 2 * y + (s2[i] - '0');
  }

  for (i = 0; i < k; ++i) {
    cin >> s;

    int z = 0;
    for (j = 0; j < n; j++)
      z = z * 2 + (s[j] - '0');
    viz[z] = 1;
  }

  if (x == y) {
    cout << "TAK";
    return 0;
  }

  dfs(x);
  if (viz[y] == 1)
    cout << "TAK";
  else
    cout << "NIE";
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...