fork download
  1. //freopen("HCN.INP", "r", stdin);
  2. //freopen("HCN.OUT", "w", stdout);
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5.  
  6. int main(){
  7. ios_base::sync_with_stdio(false);
  8. cin.tie(0); cout.tie(0);
  9.  
  10. int n, m, k;
  11. cin >> n >> m >> k;
  12.  
  13. int a[n+1][m+1];
  14. int ps[n+1][m+1];
  15. for (int i = 0; i <= n; i++){
  16. for (int j = 0; j <= m; j++) {
  17. a[i][j] = 0;
  18. ps[i][j] = 0;
  19. }
  20. }
  21.  
  22. for (int i = 0; i < k; i++){
  23. int x, y; cin >> x >> y;
  24. a[x][y] = 1;
  25. }
  26.  
  27. ps[1][1] = a[1][1];
  28. for (int i = 2; i <= n; i++) ps[i][1] = ps[i-1][1] + a[i][1];
  29. for (int i = 2; i <= m; i++) ps[1][i] = ps[1][i-1] + a[1][i];
  30. for (int i = 2; i <= n; i++){
  31. for (int j = 2; j <= m; j++) ps[i][j] = a[i][j] + ps[i-1][j] + ps[i][j-1] - ps[i-1][j-1];
  32. }
  33.  
  34. vector<pair<int, int>> v;
  35. int maxa = 0;
  36.  
  37. for (int i = 1; i <= n; i++){
  38. for (int j = 1; j <= m; j++){
  39. if (ps[i][j] == 1){
  40. pair<int, int> p;
  41. p.first = j;
  42. p.second = i;
  43. v.push_back(p);
  44. }
  45. }
  46. }
  47. for (int i = 2; i <= n; i++){
  48. for (int j = 2; j <= m; j++){
  49. int sum = ps[i][j] - ps[i - 1][j] - ps[i][j-1] + ps[i-1][j-1];
  50. if (sum == 1){
  51. pair<int, int> p;
  52. p.first = j - 1;
  53. p.second = i - 1;
  54. v.push_back(p);
  55. }
  56. }
  57. }
  58.  
  59.  
  60. for (auto i : v) maxa = max(maxa, i.first * i.second);
  61.  
  62. cout << maxa;
  63.  
  64. return 0;
  65. }
  66.  
Success #stdin #stdout 0s 5284KB
stdin
4 5 4
2 3
2 5
3 1
4 4
stdout
9