Submission #1314299

#TimeUsernameProblemLanguageResultExecution timeMemory
1314299arman.khachatryanChessboard (IZhO18_chessboard)C++20
8 / 100
49 ms2348 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int INF=1e9+10;
int main() {
    ll n, k;
    while(cin>>n>>k){
        ll 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<ll> v;
        for(ll 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);
                }
            }
        }
        ll 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++){
                ll k=x[i]/p, d=y[i]/p;
                if(k*p<x[i]){
                    k++;
                }
                if(d*p<y[i]){
                    d++;
                }
                if((k+d)%2==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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...