This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define sz(x) (int)(x.size())
int n, m, D;
vector<int> p, q;
vector<int> r, s;
int subtask4() {
int ans=D*D;
for (int a=0; a<D; a++) {
for (int b=0; b<D; b++) {
for (int c=a; c<=a+D; c++) {
for (int d=b; d<=b+D; d++) {
if ((c-a+1)*(d-b+1)>=ans) continue;
bool flag=true;
for (int i=0; i<n; i++) {
if ((p[i]>=a && p[i]<=c) || (c>=D && p[i]<=c%D)) {
if ((q[i]>=b && q[i]<=d) || (d>=D && q[i]<=d%D)) {
continue;
}
}
flag=false;
break;
}
if (!flag) {
continue;
}
for (int i=0; i<m; i++) {
if ((r[i]>=a && r[i]<=c) || (c>=D && r[i]<=c%D)) {
continue;
}
if ((s[i]>=b && s[i]<=d) || (d>=D && s[i]<=d%D)) {
continue;
}
flag=false;
break;
}
if (flag) {
ans=min(ans, (c-a+1)*(d-b+1));
}
}
}
}
}
return ans;
}
vector<bool> x(5000, false), y(5000, false);
int bruteforces(int empl) {
if (empl==m) {
int xmax=0, prec=0, prem=-1;
for (int i=0; i<D; i++) {
xmax=max(xmax, i-prec-1);
if (x[i]) {
prec=i;
if (prem==-1) prem=i;
}
}
xmax=D-xmax;
xmax=min(xmax, prec-prem+1);
int ymax=0;
prec=0, prem=-1;
for (int i=0; i<D; i++) {
ymax=max(ymax, i-prec-1);
if (y[i]) {
prec=i;
if (prem==-1) prem=i;
}
}
ymax=D-ymax;
ymax=min(ymax, prec-prem+1);
return xmax*ymax;
}
bool xx=x[r[empl]], yy=y[s[empl]];
x[r[empl]]=true;
int ans=bruteforces(empl+1);
x[r[empl]]=xx;
y[s[empl]]=true;
ans=min(ans, bruteforces(empl+1));
y[s[empl]]=yy;
return ans;
}
int subtask1() {
for (auto u: p) x[u]=true;
for (auto u: q) y[u]=true;
return bruteforces(0);
}
int solve() {
cin >> n >> m >> D;
p.resize(n);
q.resize(n);
r.resize(m);
s.resize(m);
for (int i=0; i<n; i++) {
cin >> p[i] >> q[i];
}
for (int i=0; i<m; i++) {
cin >> r[i] >> s[i];
}
if (D<=100 && n+m<=5000) return subtask4();
return subtask1();
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout << solve() << endl;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |