Assign the values in order of the degree of each node (no. of edges each node has). O(n) solution.
int maxGraph(vector<int> &A, vector<int> &B, int N) {
vector<pair<int,int>> freq(N, {0, 0});
vector<int> assign(N, 0);
int sm=0;
for(int i=0; i<N; i++)
freq[i].second = i;
for(int i=0; i<A.size(); i++)
freq[A[i]-1].first++;
for(int i=0; i<B.size(); i++)
freq[B[i]-1].first++;
sort(freq.begin(), freq.end());
for(int i=freq.size()-1; i>-1; i--)
assign[freq[i].second] = i+1;
for(int i=0; i<A.size(); i++)
sm += assign[A[i]-1];
for(int i=0; i<B.size(); i++)
sm += assign[B[i]-1];
return sm;
}