Untitled

 avatar
unknown
plain_text
4 years ago
1.8 kB
8
Indexable
#include <bits/stdc++.h>
using namespace std;

#define     F                   first
#define     S                   second
#define     pb                  push_back
#define     gap                 ' '
#define     fastIO              {ios_base::sync_with_stdio(false);cin.tie(NULL);}
#define     Inf                 1e18
#define     fix                 fixed<<setprecision(10)
#define     all(v)              v.begin(),v.end()
#define     For(i, a, b)        for(ll i = a; i <b ; i ++)
#define     endl                "\n"
#define     yes                 cout<<"YES\n"
#define     no                  cout<<"NO\n"
#define     debug(x)            cout<< #x << " = " << x <<endl;



typedef     long long               ll;
typedef     pair<ll, ll>            pll;
typedef     map<ll, ll>             mll;
typedef     vector< ll >            vl;

const ll mod = 1e9 + 7;;
const int sz  = 2e5 + 5;
vector < vector<ll> > edge(sz);
ll vis[sz];
void dfs(ll u) {
    if(vis[u]) return;

    vis[u] = 1;
    for(auto v: edge[u])
        dfs(v);

}

void solve() {
    memset(vis, 0, sizeof(vis));
    edge.clear();
    vector< pair< ll, ll> > a;
    vector< pair< ll, ll> > b;

    ll n; cin>> n;
    For(i, 0, n)  {
        ll x; cin>> x;
        a.pb({x, i + 1});
    }
    For(i, 0, n) {
        ll x; cin>> x;
        b.pb({x, i + 1});
    }
    sort(all(a));
    sort(all(b));
    For(i, 1, n) {
        edge[ a[i - 1].S ].pb(a[i].S);
        edge[ b[i - 1].S ].pb(b[i].S);
    }
    dfs(a[n - 1].S);
    For(i, 1, n +1) cout<< vis[i]; cout<< endl;


}


int32_t main()
{
    fastIO

    ll T; T = 1;
    cin >> T;
    while(T --) {
        solve();

    }


    return 0;

}
Editor is loading...