Language: C

#include<bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define PI 3.14159265
#define seive_len 1000001

typedef long long int lli;

struct pair_hash {
    inline std::size_t operator()(const std::pair<lli,lli> & v) const {
        return v.first*31+v.second;
    }
};

bool seive[seive_len];
int primeSeive[seive_len];

lli gcd(lli a, lli b) {
  if(b == 0)
    return a;
  return gcd(b, a%b);
}

lli lcm(lli a, lli b) {
  lli gcd_ = gcd(a, b);
  lli lcm_ = (a*b)/gcd_;
  return lcm_;
}

lli fastPower(lli a, lli b) {
  lli res=1;
  while(b > 0) {
    if(b&1)
      res *= a;
    a *= a;
    b >>= 1;
  }
  return res;
}

lli fastPowerM(lli a, lli b, lli mod) {
  a %= mod;
  lli res = 1;
  while(b) {
    if(b%2 == 1)
      res = (res*a)%mod;
    a = (a*a)%mod;
    b >>= 1;
  }
  return res;
}

void multiply(lli a[][2], lli b[][2], int mod) {
  int res[2][2];
  memset(res, 0, sizeof(res));
  for(int i=0;i<2;i++) {
    for(int j=0;j<2;j++) {
      for(int k=0;k<2;k++) {
        res[i][j] += a[i][k]*b[k][j]%mod;
      }
    }
  }
  for(int i=0;i<2;i++)
    for(int j=0;j<2;j++)
      a[i][j] = res[i][j];
}

void matrixExpo(lli a[][2], lli n, int mod) {
  if(n == 0 || n == 1)
    return;
  lli b[][2] = {{1,1}, {1,0}};
  matrixExpo(a, n/2, mod);
  multiply(a, a, mod);
  if(n%2)
    multiply(a, b, mod);
}

void makeSeive() {
  for(int i=2;i*i<=seive_len;i++) {
    if(seive[i]) {
      for(int j=i*i;j<=seive_len;j+=i)
        seive[j] = false;
    }
  }
}

void makePrimeSeive() {
  for(int i=1;i<seive_len;i++)
    primeSeive[i] = i;
  for(int i=4;i<seive_len;i+=2)
    primeSeive[i] = 2;
  for(int i=3;i*i<seive_len;i++) {
    if(primeSeive[i] == i) {
      for(int j=i*i;j<seive_len;j+=i) {
        if(primeSeive[j] == j)
          primeSeive[j] = i;
      }
    }
  }
}

bool isPrime(lli n) {
  for(int i=2;i<=sqrt(n);i++) {
    if(n%i == 0)
      return false;
  }
  return true;
}

void getInput(vector<lli>& a, int n) {
  lli x;
  for(int i=0;i<n;i++) {
    cin >> x;
    a.push_back(x);
  }
}

lli findMax(vector<lli>& a, lli n) {
    lli max_ = INT_MIN, x, count = 0;
    for(lli i=0;i<n;i++) {
        x = a[i];
        i++;
        count = 1;
        while(a[i] == x) {
            i++;
            count++;
        }
        i--;
        max_ = max(max_, count);
    }
    return max_;
}

void makeMaxArray(vector<lli>& a, lli n, vector<lli>& b, lli max_) {
    lli x, count, j=0, i;
    for(i=0;i<n;i++) {
        x = a[i];
        i++;
        count = 1;
        while(a[i] == x) {
            i++;
            count++;
        }
        i--;
        if(count == max_)
            b.push_back(a[i]);
    }
}

void testCase() {
    lli i, h, w, m, j;
    scanf("%lld%lld%lld", &h, &w, &m);
    vector<lli> a(m);
    vector<lli> b(m);
    // unordered_set<pair<int, int>, boost::hash< std::pair<int, int>>> m;
    for(i=0;i<m;i++) {
        scanf("%lld%lld", &a[i], &b[i]);
        // m.insert(make_pair(a[i], b[i]));
    }
    vector<lli> a2, b2;
    a2 = a;
    b2 = b;
    sort(a.begin(), a.end());
    sort(b.begin(), b.end());
    vector<lli> a1;
    vector<lli> b1;
    lli max_1 = findMax(b, m);
    makeMaxArray(b, m, b1, max_1);
    lli max_2 = findMax(a, m);
    makeMaxArray(a, m, a1, max_2);
    // cout << max_1 << ' ' << max_2 << ' ';
    // for(i=0;i<a1.size();i++)
    //     cout << a1[i] << ' ';
    for(i=0;i<a1.size();i++) {
        for(j=0;j<b1.size();j++) {
            int is = 0;
            // cout << a1[i] << ' ' << b1[j] << ' ';
            for(lli k=0;k<m;k++) {
                if(a2[k] == a1[i] && b2[k] == b1[j]) {
                    is = 1;
                    break;
                }
            }
            if(!is) {
                cout << max_1+max_2;
                return;
            }
        }
    }
    cout << max_1+max_2-1;
}

int main() {
	int t=1;
	// cin >> t;
  // makePrimeSeive();
  // FILE* fp;
  // fp = fopen("out.txt", "w");
	for(int i=1;i<=t;i++) {
    // fprintf(fp, "Case #%d:\n", i);
		testCase();
    cout << '\n';
	}
	return 0;
}


Compiler output:
main.c:1:9: fatal error: bits/stdc++.h: No such file or directory
    1 | #include<bits/stdc++.h>
      |         ^~~~~~~~~~~~~~~
compilation terminated.