You are on page 1of 2

int main()

using namespace std;


{
string ibin1, ibin2;
cin >> ibin1 >> ibin2;

if (ibin2.size() > ibin1.size()) { //ibin1 wiekszy


string a = ibin1;
ibin1 = ibin2;
ibin2 = a;
}

int diff = ibin1.size() - ibin2.size();


string ibin2long = "";

while (diff > 0) {


ibin2long = ibin2long + "0";
diff--;
}
ibin2long = ibin2long + ibin2;

//cout << ibin2long;

string ibinans;
bool remember = false;

for (int i = ibin1.size(); i > 0; i--) {


if (ibin1[i - 1] == '0' && ibin2long[i - 1] == '0') {
if (remember) {
ibinans = ibinans + "1";
remember = false;
}
else ibinans = ibinans + "0";
}
if (ibin1[i - 1] == '1' && ibin2long[i - 1] == '0') {
if (remember) {
ibinans = ibinans + "0";
remember = true;
}
else ibinans = ibinans + "1";
}
if (ibin1[i - 1] == '0' && ibin2long[i - 1] == '1') {
if (remember) {
ibinans = ibinans + "0";
remember = true;
}
else ibinans = ibinans + "1";
}
if (ibin1[i - 1] == '1' && ibin2long[i - 1] == '1') {
//cout << "done";
if (remember) {
ibinans = ibinans + "1";
remember = true;
}
else ibinans = ibinans + "0";
remember = true;
}
//cout << "done2";
}
if (remember) ibinans = ibinans + "1";

//cout << ibin2long << " ";

//wypisac
for (int i = ibinans.size(); i > 0; i--) {
cout << ibinans[i - 1];
}
}

You might also like