Submission #1143283

#TimeUsernameProblemLanguageResultExecution timeMemory
1143283elisaipateWalk (POI13_spa)C++20
12 / 100
503 ms327680 KiB
#include <iostream>

using namespace std;

const int nmax = 1e7;
bool viz[nmax];
int n;

int tr( string s ) {
  int p2 = 1, rez = 0;
  for( int i = n - 1; i >= 0; i-- ) {
    rez = rez + p2 * (s[i] - '0');
    p2 *= 2;
  }
  return rez;
}

void bfs( int vf ) {
  viz[vf] = true;
  int p2 = 1;
  for( int i = 0; i < n; i++ ) {
    if( (vf / p2) % 2 == 0 ) {
      if( viz[vf + p2] == false )
        bfs( vf + p2 );
    } else {
      if( viz[vf - p2] == false )
        bfs( vf - p2 );
    }
    p2 *= 2;
  }
}

signed main()
{
    int k, a;
    cin >> n >> k;
    int x, y;
    string s;
    cin >> s;
    x = tr(s);
    cin >> s;
    y = tr(s);
    for( int i = 0; i < k; i++ ) {
      cin >> s;
      a = tr(s);
      viz[a] = true;
      //cout << v[i] << " ";
    }
    //cout << "\n";
    bfs( x );
    if( viz[y] == true )
      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...