Submission #168456

#TimeUsernameProblemLanguageResultExecution timeMemory
168456achibasadzishviliChessboard (IZhO18_chessboard)C++14
70 / 100
344 ms3356 KiB
#include <bits/stdc++.h> #define ll long long #define f first #define s second #define pb push_back #define mp make_pair using namespace std; ll ans,n,k,x[200005],y[200005]; void solve(ll t){ if(t == n)return; ll raod = 0; for(int i=1; i<=k; i++) if((x[i] / t + y[i] / t) % 2 == 0)raod++; if((n / t) % 2 == 0){ raod = max(raod , k - raod); ans = min(ans , ((n * n) / 2) - raod + k - raod); } else{ ll fir = (((n/t)*(n/t))/2 + 1) * (t * t) - raod + (k - raod); ll sec = (((n/t)*(n/t))/2) * (t * t) - (k - raod) + raod; ans = min(ans , min(fir , sec)); } } int main(){ ios::sync_with_stdio(false); cin >> n >> k; for(int i=1; i<=k; i++){ cin >> x[i] >> y[i] >> x[i] >> y[i]; x[i]--; y[i]--; } ans = n * n; for(int i=1; i<=sqrt(n); i++){ if((n % i) == 0){ solve(n / i); solve(i); } } cout << ans << 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...