Source Code
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n , x, y , z;
    cin >> n >> x >> y >> z;
    string a, b, c;
    cin >> a >> b >> c;
    int test = 1;
    char arr[n];
    for(int i = 0; i < n; i++){
        if(a[i] == '0' && b[i] == '0' && c[i] == '1'){
            test = 0;
        }
        if(a[i] == '0' && b[i] == '1' && c[i] == '0'){
            arr[i] = '&';
            x--;
            if(x < 0)
                test = 0;
        }
        if(a[i] == '1' && b[i] == '0' && c[i] == '0'){
            arr[i] = '&';
            x--;
            if(x < 0)
                test = 0;
        }
        if(a[i] == '1' && b[i] == '1' && c[i] == '0'){
            arr[i] = '^';
            z--;
            if(z < 0)
                test = 0;
        }
    }
    for(int i = 0; i < n; i++){
        if(a[i] == '0' && b[i] == '1' && c[i] == '1'){
            if(z > 0){
                z--;
                arr[i] = '^';
            }
            else if(y > 0){
                y--;
                arr[i] = '|';
            }
            else test = 0;
        }
        if(a[i] == '1' && b[i] == '0' && c[i] == '1'){
            if(z > 0){
                z--;
                arr[i] = '^';
            }
            else if(y > 0){
                y--;
                arr[i] = '|';
            }
            else
                test = 0;
        }
        if(a[i] == '1' && b[i] == '1' && c[i] == '1'){
            if(x > 0){
                x--;
                arr[i] = '&';
            }
            else if(y > 0){
                y--;
                arr[i] = '|';
            }
            else
                test = 0;
        }
    }
    for(int i = 0; i < n; i++){
        if(a[i] == '0' && b[i] == '0' && c[i] == '0'){
            if(x > 0){
                x--;
                arr[i] = '&';
            }else if(y > 0){
                y--;
                arr[i] = '|';
            }else if(z > 0){
                z--;
                arr[i] = '^';
            }else{
                test = 0;
            }
        }
    }
    if(!test || x <0 || y < 0 || z < 0)
        cout << "NO"<<endl;
    else{
        cout<<"YES"<<endl;
        for(int i = 0; i < n; i++)
            cout << arr[i];
        cout<<endl;
    }
}
Copy
Binary String Mohamedmaher
GNU G++17
13 ms
2.1 MB
Accepted