Submission #1201728

#TimeUsernameProblemLanguageResultExecution timeMemory
1201728HanksburgerChessboard (IZhO18_chessboard)C++20
100 / 100
532 ms448 KiB
#include <bits/stdc++.h> #define int long long using namespace std; vector<pair<int, int> > v; void f(int x, int y, int z) { for (int i=0; i<v.size(); i++) { int u=v[i].first; int a=(x/u%2 && y/u%2)?((x/u*u)*(y/u*u)+u*u)/2:(x/u*u)*(y/u*u)/2; int b=x/u%2?(y/u%2?(x/u*u-u)*(y%u)/2:(x/u*u+u)*(y%u)/2):(x/u*u)*(y%u)/2; int c=y/u%2?(x/u%2?(x%u)*(y/u*u-u)/2:(x%u)*(y/u*u+u)/2):(x%u)*(y/u*u)/2; int d=(x/u+y/u)%2?0:(x%u)*(y%u); v[i].second+=z*(x*y-(a+b+c+d)*2); } } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k, m=1e18; cin >> n >> k; for (int i=1; i<n; i++) if (n%i==0) v.push_back({i, n/i%2?(n*n+i*i)/2:n*n/2}); for (int i=1; i<=k; i++) { int x1, y1, x2, y2; cin >> x1 >> y1 >> x2 >> y2; f(x2, y2, 1); f(x2, y1-1, -1); f(x1-1, y2, -1); f(x1-1, y1-1, 1); } for (int i=0; i<v.size(); i++) m=min(m, min(v[i].second, n*n-v[i].second)); cout << m; }
#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...