Submission #878744

#TimeUsernameProblemLanguageResultExecution timeMemory
878744Elvin_FritlChessboard (IZhO18_chessboard)C++17
100 / 100
289 ms5976 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define io                      \
    ios_base::sync_with_stdio(0); \
    cin.tie(0);                   \
    cout.tie(0);

 
typedef long long ll;
 
ll bp(ll n,ll m){
    if(m == 0){
        return 1;
    }
    if(m == 1){
        return n;
    }
    if(m%2==0){
        return bp(n*n,m/2);
    }
    return n*bp(n,m-1);
}

 
const int N =  2505, M = 33, inf = 1e9 + 99;
const ll inff = 1e12;
 
int main()
{
	io;
	
	ll n, k; 
	cin >> n >> k;
	ll res = n * n;
	ll a[k][4];
	for(int i=0;i<k;i++) {
		cin >> a[i][0] >> a[i][1] >> a[i][2] >> a[i][3];
	}
	for(ll m=1;m<n;m++) {
		if(!(n % m)) { 
			ll tmp = (m * (n / (2 * m)) + min(m, n % (2 * m))) * (n - (m * (n / (2 * m)) + min(m, n % (2 * m)))) + (1LL * m * (n / (2 * m)) + min(1LL * m, 1LL * n % (2 * m))) * (n - (m * (n / (2LL * m)) + min(m, n % (2 * m))));
			for(int i=0;i<k;i++) {
				ll u = a[i][2] - a[i][0] + 1;
				ll x = (m * (a[i][2] / (2 * m)) + min(1LL * m, 1LL * a[i][2] % (2 * m))) - (m * ((a[i][0] - 1) / (2 * m)) + min(1LL * m,1LL *  (a[i][0] - 1) % (2LL * m)));
				ll v = a[i][3] - a[i][1] + 1;
				ll y = (m * (a[i][3] / (2 * m)) + min(1LL * m, 1LL * a[i][3] % (2 * m))) - (1LL * m * ((a[i][1] - 1) / (2 * m)) + min(1LL * m, 1LL * (a[i][1] - 1) % (2LL * m)));;
				tmp += 2 * (x * y + (u - x) * (v - y)) - u * v;
			}
			res = min(res, min(tmp, n * n - tmp));
		}
	}
	cout << res << endl;
    
    return 0;
 
}
#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...