Submission #1108499

#TimeUsernameProblemLanguageResultExecution timeMemory
1108499MuhammetChessboard (IZhO18_chessboard)C++17
100 / 100
106 ms5112 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long vector <ll> p; ll f(ll x1, ll y1, ll x2, ll y2){ ll z = (p[y2] - p[y1-1]); z *= (p[x2] - p[x1-1]); z += (((x2-x1+1) - (p[x2] - p[x1-1])) * ((y2-y1+1) - (p[y2] - p[y1-1]))); return z; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); ll n, k, k1 = 0; cin >> n >> k; vector <int> x1(k+1), y1(k+1), x2(k+1), y2(k+1); for(int i = 1; i <= k; i++){ cin >> x1[i] >> y1[i] >> x2[i] >> y2[i]; ll a = (x2[i] - x1[i] + 1), b = (y2[i] - y1[i] + 1); a *= b; k1 += a; } ll ans = n, n1 = n; ans *= n; n1 *= n; // cout << k1 << "\n"; for(ll x3 = 1; x3 < n; x3++){ if(n % x3 != 0) continue; p.assign(n+2,0); ll x = (x3 * 2), cnt = 0; for(int i = 1; i <= n; i++){ p[i] = p[i-1] + ((i % x) <= (x / 2) and (i % x) != 0); } for(int i = 1; i <= k; i++){ cnt += f(x1[i], y1[i], x2[i], y2[i]); } // cout << x3 << ' ' << cnt << "\n"; ll y = ((x3 * x3) * (((n / x3) + 1) / 2) * (((n / x3) + 1) / 2)) + ((x3 * x3) * ((n / x3) / 2) * ((n / x3) / 2)); ans = min(ans, (y - cnt + (k1-cnt))); ans = min(ans, (n1 - y) - (k1-cnt) + cnt); } cout << ans; }
#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...