제출 #93123

#제출 시각아이디문제언어결과실행 시간메모리
93123MakhsudChessboard (IZhO18_chessboard)C++17
39 / 100
142 ms400 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; ll n, k, cnt, x, y, xx, yy; ll a[3][3]; ll di[50005][5][5]; void subt1() { ll mn = INT_MAX; for ( int i = 1; i < n; i ++ ){ if ( n % i == 0 ) { ll c = 0; for ( int j = 1; j <= (n/i); j ++ ) { if ( j % 2 ) { c += (i*i) * ( ( n/i ) / 2 ); } else { c += (i*i) * ( ( ( n/i ) + 1 ) / 2 ); } } mn = min( mn, c ); } } cout << mn; exit(0); } void subt2() { ll c1, c2; c1 = c2 = 0; for ( int i = 1; i <= k; i ++ ) { cin >> x >> y >> xx >> yy; a[x%2][y%2] ++; } c1 = (n*n)/2; c2 = c1 + 1; c1 = c1 - ( a[1][0] + a[0][1] ); c1 = c1 + ( a[1][1] + a[0][0] ); c2 = c2 - ( a[1][1] + a[0][0] ); c2 = c2 + ( a[1][0] + a[0][1] ); cout << min( c1, c2 ); exit(0); } void subt_3_4_5() { ll mn = INT_MAX, a1, a2; vector <ll> d(0); for ( int i = 1; i < n; i ++ ){ if ( n % i == 0 ) { d.push_back( (ll) i ); } } for ( int i = 1; i <= k; i ++ ){ cin >> x >> y >> xx >> yy; for ( auto e: d ) { ll r, c; r = (x/e) + ( (x%e) && 1 ); c = (y/e) + ( (y%e) && 1 ); di[e][r%2][c%2] ++; } } for ( auto e: d ) { a1 = a2 = 0; for ( int i = 1; i <= (n/e); i ++ ) { if ( i % 2 ) { a1 += (e*e) * ((n/e)/2); a2 += (e*e) * (((n/e)+1)/2); } else { a2 += (e*e) * ((n/e)/2); a1 += (e*e) * (((n/e)+1)/2); } } a1 -= di[e][1][0] + di[e][0][1]; a1 += di[e][0][0] + di[e][1][1]; a2 += di[e][1][0] + di[e][0][1]; a2 -= di[e][0][0] + di[e][1][1]; mn = min ( mn, min ( a1, a2 ) ); } cout << mn; exit(0); } int main() { cin >> n >> k; for ( int i = 1; i <= n; i ++ ) { if ( n % i == 0 ) cnt ++; } subt_3_4_5(); }
#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...