#include <bits/stdc++.h>
using namespace std;
const int INF=1e9+10;
int main() {
int n, k;
while(cin>>n>>k){
int x[k], x2[k], y[k], y2[k];
for(int i=0; i<k; i++){
cin>>x[i]>>y[i]>>x2[i]>>y2[i];
}
vector<int> v;
for(int i=1; i<=sqrtl(n); i++){
if(n%i==0){
v.push_back(i);
if(n!=i*i && i!=1){
v.push_back(n/i);
}
}
}
int ans=INF, last_ans_b, last_ans_w;
for(auto& p : v){
last_ans_b=(((n/p)+1)>>1)*(((n/p)+1)>>1)*p*p+(n/p/2)*(n/p/2)*p*p;
last_ans_w=n*n-last_ans_b;
for(int i=0; i<k; i++){
int k=x[i]/p, d=y[i]/p;
if(k*p<x[i]){
k++;
}
if(d*p<y[i]){
d++;
}
k%=2;
d%=2;
if(k+d==1){
last_ans_b++;
last_ans_w--;
}else{
last_ans_b--;
last_ans_w++;
}
}
ans=min(ans, min(last_ans_b, last_ans_w));
}
cout<<ans<<'\n';
}
}
| # | 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... |