제출 #342861

#제출 시각아이디문제언어결과실행 시간메모리
342861RakhmandChessboard (IZhO18_chessboard)C++14
39 / 100
335 ms2924 KiB
// // main.cpp // torelax // // Created by Rakhman on 11/15/20. // #include <cstring> #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <algorithm> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <queue> #include <cmath> #include <cstdlib> #include <ctime> #include <cassert> #include <iterator> #define ios ios_base::sync_with_stdio(0), cout.tie(0), cin.tie(0); #define S second #define F first #define pb push_back #define nl '\n' #define NL cout << '\n'; #define EX exit(0) #define all(s) s.begin(), s.end() #define no_answer {cout << "NO"; exit(0);} #define FOR(i, start, finish, k) for(llong i = start; i <= finish; i += k) const long long mxn = 2e6 + 110; const long long mnn = 1e3 + 2; const long long mod = 1e9 + 7; const long long inf = 1e18; const long long OO = 1e9; typedef long long llong; typedef unsigned long long ullong; using namespace std; int n, k; llong ans = inf; bool black[mnn][mnn]; struct dot{ int left, up, right, down; }b[mxn]; llong get_color(int x, int y, int d){ return (((x - 1) / d) + ((y - 1) / d)) % 2; } llong get(llong x){ llong cnt = 0; for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ cnt += (get_color(i, j, x) == black[i][j]); } } llong cnt1 = 0; for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ cnt1 += (get_color(i, j, x) != black[i][j]); } } return min(cnt1, cnt); } int main() { ios; cin >> n >> k; for(int i = 1; i <= k; i++){ cin >> b[i].left >> b[i].up >> b[i].right >> b[i].down; black[b[i].left][b[i].up] = true; } for(int i = 1; i <= sqrt(n); i++){ if(n % i == 0){ ans = min(ans, get(i)); //cout << i << ' ' << ans << nl; if(n / i != i && i != 1){ ans = min(get(n / i), ans); //cout << n / i << ' ' << ans << nl; } } } cout << ans; } /* 6 8 3 3 3 3 1 2 1 2 3 4 3 4 5 5 5 5 4 3 4 3 4 4 4 4 2 1 2 1 3 6 3 6 */
#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...