Language: C++

#include<bits/stdc++.h>

using namespace std;

const int MOD=1e9+7;

//const int MOD=998244353;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    
    int n;
    cin>>n;
    
    vector<unsigned long long> s(n),t(n),u(n),v(n);
    vector<int> ro,ra,co,ca;
    
    for(auto&i:s)cin>>i;
    for(auto&i:t)cin>>i;
    for(auto&i:u)cin>>i;
    for(auto&i:v)cin>>i;
    
    vector<vector<unsigned long long>> ans(n,vector<unsigned long long>(n));
    
    unsigned long long allbits=0;
    for(int i=0; i<=63; i++) allbits+=1ull<<i;
    
    for(int i=0; i<n; i++){
        for(int j=0; j<n; j++){
            if(s[i] || t[j]) ans[i][j]=u[i]&v[j];
            else ans[i][j]=u[i]|v[j];
        }
    }
    for(int i=0; i<n; i++){
        if(u[i]) ro.push_back(i);
        else ra.push_back(i);
        if(v[i]) co.push_back(i);
        else ca.push_back(i);
    }
    
    if(ra.size()>=2 && co.size()>=2){
        for(int i=0; i<2; i++){
            for(int j:co){
                ans[ra[i]][j]=v[j];
            }
        }
        ans[ra[0]][co[0]]=u[ra[0]]&v[co[0]];
        ans[ra[1]][co[1]]=u[ra[1]]&v[co[1]];
    }
    else if(ra.size()==1){
        for(int j:co){
            unsigned long long tot=0;
            for(int i=0; i<n; i++){
                tot|=ans[i][j];
            }
            ans[ra[0]][j]|=(tot^v[j]);
        }
    }
    else{
        for(int i:ra){
            unsigned long long val=allbits;
            
            for(int j=0; j<n; j++){
                if(j==co[0]) continue;
                val&=ans[i][j];
            }
            for(int k=0; k<64; k++){
                auto bit=1ull<<k;
                if((v[co[0]]&bit) && (!(val&bit))) ans[i][co[0]]|=bit;
            }
            
        }
    }
    
    if(ro.size()>=2 && ca.size()>=2){
        for(int j=0; j<2; j++){
            for(int i:ro){
                ans[i][ca[j]]=u[i];
            }
        }
        ans[ro[0]][ca[0]]=u[ro[0]]&v[ca[0]];
        ans[ro[1]][ca[1]]=u[ro[1]]&v[ca[1]];
    }
    else if(ca.size()==1){
        for(int i:ro){
            unsigned tlong long tot=0;
            for(int j=0; j<n; j++){
                tot|=ans[i][j];
            }
            ans[i][ca[0]]|=(tot^u[i]);
        }
    }
    else{
        for(int j:ca){
            unsigned long long val=allbits;
            
            for(int i=0; i<n; i++){
                if(i==ro[0]) continue;
                val&=ans[i][j];
            }
            for(int k=0; k<64; k++){
                auto bit=1ull<<k;
                if((u[ro[0]]&bit) && (!(val&bit))) ans[ro[0]][j]|=bit;
            }
            
        }
    }
    
    
    
    
    for(int i=0; i<n; i++){
        unsigned long long val=ans[i][0];
        for(int j=1; j<n; j++){
            if(s[i]) val|=ans[i][j];
            else val&=ans[i][j];
            
        }
        if(val!=u[i]){
            cout<<-1;
            return 0;
        }
        
    }
    
    for(int j=0; j<n; j++){
        unsigned long long val=ans[0][j];
        for(int i=1; i<n; i++){
            if(t[j]) val|=ans[i][j];
            else val&=ans[i][j];
            
        }
        if(val!=v[j]){
            cout<<-1;
            return 0;
        }
        
    }
    for(auto ve:ans){
        for(auto i:ve){
            cout<<i<<' ';
        }
        cout<<'\n';
    }
    
    
    return 0;
}


Compiler output:
a.cc: In function 'int main()':
a.cc:87:28: error: expected initializer before 'long'
   87 |             unsigned tlong long tot=0;
      |                            ^~~~
a.cc:89:17: error: 'tot' was not declared in this scope
   89 |                 tot|=ans[i][j];
      |                 ^~~
a.cc:91:29: error: 'tot' was not declared in this scope
   91 |             ans[i][ca[0]]|=(tot^u[i]);
      |                             ^~~