제출 #879129

#제출 시각아이디문제언어결과실행 시간메모리
879129TahirAliyevChessboard (IZhO18_chessboard)C++17
100 / 100
194 ms6628 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<ll, ll> #define oo 1e12 #define int ll int n, k; const int MAX = 1e5 + 5; vector<array<int, 4>> black; vector<int> s; signed main(){ cin >> n >> k; for(int i = 1; i <= k; i++){ int a, b, c, d; cin >> a >> b >> c >> d; black.push_back({a, b, c, d}); } s.push_back(1); for(int d = 2; d * d <= n; d++){ if(n % d == 0){ s.push_back(d); if(n / d != d){ s.push_back(n / d); } } } int ans = oo; for(int a : s){ int pre[n + 1]; pre[0] = 0; for(int i = 1; i <= n; i++){ pre[i] = pre[i - 1] + (((i - 1) / a + 1) % 2); } int tmp = ((n / a) * (n / a) + 1) / 2 * a * a; for(auto b : black){ int p1 = pre[b[2]] - pre[b[0] - 1]; int p2 = pre[b[3]] - pre[b[1] - 1]; int x = (b[2] - b[0] + 1); int y = (b[3] - b[1] + 1); tmp -= x * y - 2 * (p1 * (y - p2) + p2 * (x - p1)); } ans = min(tmp, ans); ans = min(n * n - tmp, ans); } 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...