C++, 100 %, Standard negative base addition rules from Wikipedia
\n\nclass Solution {\npublic:\n    #define pii pair<int,int>\n    vector<int> addNegabinary(vector<int>& arr1, vector<int>& arr2) {\n        unordered_map<int, 
\n```\nclass Solution {\npublic:\n    #define pii pair<int,int>\n    vector<int> addNegabinary(vector<int>& arr1, vector<int>& arr2) {\n        unordered_map<int, pii> mp ;\n        mp[-2] = {0,1}, mp[-1] = {1,1}, mp[0] = {0,0}, mp[1] = {1,0}, mp[2] = {0,-1}, mp[3] = {1,-1}; \n        vector<int> res ; \n        int n = arr1.size(), m = arr2.size();\n        int i = n-1, j = m-1, carry = 0, currbit = 0; \n        while(i>= 0 || j >= 0 || carry){\n            int currSum = carry; \n            if(i >=0 ) currSum += arr1[i--];\n            if(j >= 0) currSum += arr2[j--]; \n            currbit = mp[currSum].first; \n            carry = mp[currSum].second; \n            res.push_back(currbit); \n        }\n        reverse(res.begin(), res.end());\n        auto it = res.begin(); \n        while(it!= res.end() && *it == 0) it ++; \n        if(it == res.end()) return {0}; \n        res = vector<int> (it, res.end()); \n        return res ; \n    }\n};\n```
['C']