문제
링크
풀이
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
inline long long calc(long long a, long long b, long long c, long long d) {
return (b-a+1) * (d-c+1);
}
void solve(void) {
int r, c; cin >> r >> c;
int n; cin >> n;
vector<int> v1(n+1, -1), v2(n+1, -1), h1(n+1, -1), h2(n+1, -1);
for (int i=0; i<n; i++) {
int a, v, h; cin >> a >> v >> h;
v1[a] = (~v1[a] ? min(v1[a], v) : v);
v2[a] = (~v2[a] ? max(v2[a], v) : v);
h1[a] = (~h1[a] ? min(h1[a], h) : h);
h2[a] = (~h2[a] ? max(h2[a], h) : h);
}
int idx = 0; long long sz = 0;
for (int i=1; i<=n; i++) {
if (~v1[i] && calc(v1[i], v2[i], h1[i], h2[i]) > sz) {
idx = i; sz = calc(v1[i], v2[i], h1[i], h2[i]);
}
}
cout << idx << " " << sz;
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}