#include <bits/stdc++.h>
#define int long long
using namespace std;
vector<pair<int, int> > v;
void f(int x, int y, int z)
{
for (int i=0; i<v.size(); i++)
{
int u=v[i].first;
int a=(x/u%2 && y/u%2)?((x/u*u)*(y/u*u)+u*u)/2:(x/u*u)*(y/u*u)/2;
int b=x/u%2?(y/u%2?(x/u*u-u)*(y%u)/2:(x/u*u+u)*(y%u)/2):(x/u*u)*(y%u)/2;
int c=y/u%2?(x/u%2?(x%u)*(y/u*u-u)/2:(x%u)*(y/u*u+u)/2):(x%u)*(y/u*u)/2;
int d=(x/u+y/u)%2?0:(x%u)*(y%u);
v[i].second+=z*(x*y-(a+b+c+d)*2);
}
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, k, m=1e18;
cin >> n >> k;
for (int i=1; i<n; i++)
if (n%i==0)
v.push_back({i, n/i%2?(n*n+i*i)/2:n*n/2});
for (int i=1; i<=k; i++)
{
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
f(x2, y2, 1);
f(x2, y1-1, -1);
f(x1-1, y2, -1);
f(x1-1, y1-1, 1);
}
for (int i=0; i<v.size(); i++)
m=min(m, min(v[i].second, n*n-v[i].second));
cout << m;
}
# | 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... |