제출 #1143308

#제출 시각아이디문제언어결과실행 시간메모리
1143308Luca7새로운 문제 (POI13_spa)C++20
12 / 100
337 ms327680 KiB
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;

#define ll int

// ifstream cin("data.in");
// ofstream cout("data.out");

vector<ll> vpow;

vector<int> visited;

ll snr(int n,string s){
    ll x=0;
    for(ll i=0;i<n;i++){
        x+=(s[i]-'0')*((ll)1<<(n-i-1));
    }
    return x;
}

void dfs(ll p,ll n){
    visited[p]=1;
    for(int i=0;i<n;i++){
        ll p1;
        if(p&(1<<(i))){
            p1=p-(1<<(i));
        }
        else{
            p1=p+(1<<(i));
        }
        if(visited[p1]==0){
            dfs(p1,n);
        }
    }
}

int main(){
    ll n,k,i,j,x=0,y=0;
    string s;
    
    cin>>n>>k;
    cin>>s;
    x=snr(n,s);
    cin>>s;
    y=snr(n,s);

    visited.resize((1<<n)+2,0);
    for(i=0;i<k;i++){
        cin>>s;
        visited[snr(n,s)]=-1;
    }

    dfs(x,n);

    if(visited[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...