Submission #338443

#TimeUsernameProblemLanguageResultExecution timeMemory
338443BY_KUTBILIMChessboard (IZhO18_chessboard)C++14
70 / 100
260 ms2156 KiB
/** @BY_KUTBILIM **/ #include <bits/stdc++.h> using namespace std; #define ff first #define ss second #define pb push_back #define ll long long #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).end() const int inf = (int)1e9+7; int main(){ ios_base::sync_with_stdio(false); cin.tie(); int k; ll n; cin >> n >> k; int x1[k], x2[k], y1[k], y2[k]; vector<ll> div; div.pb(1); for(int i = 2; i <= sqrt(n); i++){ if(n % i == 0){ div.pb(i); if(i != n / i){ div.pb(n/i); } } } sort(all(div)); vector<ll> cnt1((int)div.size(), 0), cnt0((int)div.size(), 0); for(int i = 0; i < k; i++){ cin >> x1[i] >> y1[i] >> x2[i] >> y2[i]; x1[i]--; y1[i]--; for(int j = 0; j < (int)div.size(); j++){ if((x1[i] / div[j] + y1[i] / div[j]) % 2 == 0)cnt0[j]++; else cnt1[j]++; } } ll ans = n * n; for(int i = 0; i < (int)div.size(); i++){ ans = min({ans, n * n / (div[i] * div[i]) / 2ll * (div[i] * div[i]) + (div[i] * div[i]) - cnt0[i] + cnt1[i], n * n / (div[i] * div[i]) / 2ll * (div[i] * div[i]) - cnt1[i] + cnt0[i]}); } cout << ans; return 0; } /* 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...