제출 #1143207

#제출 시각아이디문제언어결과실행 시간메모리
1143207Gtudor새로운 문제 (POI13_spa)C++20
12 / 100
238 ms109988 KiB
#include <iostream>

#define int long long

using namespace std;

string s;

bool viz[(1<<23)];

int transformToInt() {
  int put = 1, nr = 0;
  for(int i = 0; i < s.size(); i++) {
    nr = nr * 2 + (s[i] - '0') ;
  }
  return nr;
}

void dfs(int p, int nod, int n) {
  int put;
  viz[nod] = 1;
  put = 1;
  for(int i = 0; i < n; i++) {
    int vecin = (nod ^ put);
    put *= 2;
    if(viz[vecin])
      continue;
    dfs(nod, vecin, n);
  }
}

signed main() {
  int n, m, k, x, y, z;
  cin>>n>>m;
  cin>>s;
  x = transformToInt();
  cin>>s;
  y = transformToInt();
  if(x == y) {
    cout<<"TAK";
    return 0;
  }
  for(int i = 1; i <= m; i++) {
    cin>>s;
    z = transformToInt();
    viz[z] = 1;
  }
  dfs(0, x, n);
  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...