Submission #1134942

#TimeUsernameProblemLanguageResultExecution timeMemory
113494212345678Chessboard (IZhO18_chessboard)C++20
70 / 100
170 ms7920 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long

const int nx=1e5+5;

ll n, k, a[nx], b[nx], c[nx], d[nx], st, l, ans=1e18, cnta, cntb;
vector<ll> r[nx];

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n>>k;
    for (int i=1; i<=k; i++) cin>>a[i]>>b[i]>>c[i]>>d[i], r[a[i]].push_back(b[i]);
    for (int t=1; t<n; t++)
    {
        if ((n%t)!=0) continue;
        cnta=cntb=0;
        for (int i=1; i<=n; i++)
        {
            l=(((i-1)/t)%2);
            //cout<<"debug "<<t<<' '<<i<<' '<<l<<'\n';
            if ((n/t)%2==0) cnta+=n/2;
            else cnta+=(n/t)/2*t+l*t;
            for (auto x:r[i])
            {
                if ((((x-1)/t)%2)^l) cnta--;
                else cnta++;
            }
            //cout<<"lvl "<<i<<' '<<cnta<<'\n';
            l^=1;
            if ((n/t)%2==0) cntb+=n/2;
            else cntb+=(n/t)/2*t+l*t;
            for (auto x:r[i])
            {
                if ((((x-1)/t)%2)^l) cntb--;
                else cntb++;
            }
        }
        //cout<<"t "<<t<<' '<<cnta<<' '<<cntb<<'\n';
        ans=min({ans, cnta, cntb});
    }
    cout<<ans;
}

/*
6 8
3 3 3 3
1 2 1 2
3 4 3 4
5 5 5 5
4 3 4 3
4 4 4 4
2 1 2 1
3 6 3 6
*/
#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...