제출 #488057

#제출 시각아이디문제언어결과실행 시간메모리
488057nickmet2004Chessboard (IZhO18_chessboard)C++11
0 / 100
27 ms3264 KiB
#include<bits/stdc++.h> using namespace std; const int N= 1e5 + 5; int n , k; int A[N] , B[N] , C[N] , D[N]; int G[N][2]; int ans = 2e9; void q(int x){ int sz = n / x; for(int i = 0; i < k; ++i){ G[B[i] / x][(A[i] / x) % 2]++; } int Y = 0 , L = sz / 2 , ok = 0; if((sz / 2) % 2 == 1)ok = 1; L += ok; for(int i= 0;i < sz; ++i){ Y += L * x * x - G[i][0] + G[i][1]; if(i & 1) L -= ok; else L += ok; } ans = min(Y , ans); L = sz/2; Y = 0; for(int i = 0; i < sz; ++i){ Y += G[i][0] + L * x * x - G[i][1]; if(i & 1) L += ok; else L -= ok; G[i][0] = G[i][1] = 0; } ans = min(Y , ans); } int main (){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> k; for(int i = 0; i < k; ++i){ cin >> A[i] >> B[i] >> C[i] >> D[i]; --A[i] , --B[i] , --C[i] , --D[i]; } for(int i = 1; i * i <= n; ++i){ if(n % i ==0){ q(n / i); if(n / i != i) q(i); } } cout << ans; 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...