Source Code
#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int n ,x , y , z ; 
	cin >> n >> x >> y >> z ; 
	string a , b , s ; 
	cin >> a >> b >> s ; 
	string ans = "" ; 
	for(int i=0 ; i<n ; i++) ans += '-';
	for(int i=0 ; i<n ; i++){
		if(a[i] == '0' && b[i] == '0' && s[i] == '1'){
			cout << "NO" ;
			return 0;
		}
		if(a[i] != b[i] && s[i] == '0'){
			if(x > 0){
				ans[i] = '&';
				x--;
			}
			else{
				cout << "NO" ;
				return 0;
			}
		}
		if(a[i] == '1' && b[i] == '1' && s[i] == '0'){
			if(z > 0){
				ans[i] = '^';
				z--;
			}
			else{
				cout << "NO" ; 
				return 0;
			}
		}
	}
	for(int i=0 ; i<n ; i++){
		if(a[i] != b[i] && s[i] == '1'){
			if(z > 0){
				ans[i] = '^';
				z--;
			}
			else if(y > 0){
				ans[i] = '|';
				y--;
			}
			else{
				cout << "NO";
				return 0;
			}
		}
		if(a[i] == '1' && b[i] == '1' && s[i] == '1'){
			if(x > 0){
				ans[i] = '&';
				x--;
			}
			else if(y > 0){
				ans[i] = '|';
				y--;
			}
			else{
				cout << "NO" ; 
				return 0 ;
			}
		}
	}
	cout << "YES\n" ; 
	for(int i=0 ; i<n ; i++){
		if(ans[i] == '-'){
			if(x > 0){
				ans[i] = '&' ; 
				x--;
			}
			else if(y > 0){
				ans[i] = '|' ;
				y--;
			}
			else{
				ans[i] = '^' ; 
				z--;
			}
		}
	}
	cout << ans ;
	
	return 0;
}
Copy
Binary String Tala_Ibraheem
GNU G++17
28 ms
1.2 MB
Accepted