제출 #495257

#제출 시각아이디문제언어결과실행 시간메모리
495257ergaganChessboard (IZhO18_chessboard)C++17
16 / 100
136 ms292 KiB
//я так много думал, что опять попал #include <bits/stdc++.h> #define all(x) x.begin(),x.end() #define pb push_back #define ppb pop_back #define pf push_front #define ppf pop_front #define f first #define s second #define left(v) v + v #define right(v) v + v + 1 #define ub upper_bound #define lb lower_bound using namespace std; typedef long long ll; //17 SEVENTEEN const long double Pi = acos(-1.0); const ll dx[] = {0,0,1,-1}; const ll dy[] = {1,-1,0,0}; const ll N = (ll) 1e6 + 17; const ll M = (ll) 5e3 + 69; const ll inf = (ll) 1e18 + 3; const ll mod = (ll) 1e9 + 7; ll sq(ll x) { return x * x; } ll zxc = 1; vector<ll> d; map<pair<ll, ll>, ll> cnt; void solve() { ll n, k; cin >> n >> k; for(ll i = 2; i * i <= n; i++) { if(!(n % i)) { d.pb(i); if(n / i != i) d.pb(n / i); } } d.pb(1); sort(all(d)); // for(ll x : d) cout << x << "\n"; while(k--) { ll x, y; cin >> x >> y >> x >> y; for(ll val : d) cnt[{val, (x / val + y / val) % 2}]++; } ll ans = inf; for(ll val : d) { ll m = n / val, x; if(m % 2) x = sq((m + 1) / 2) + sq(m / 2); else x = m * m / 2; ans = min(min(x * sq(val) - cnt[{val, 0}] + cnt[{val, 1}], sq(n) - x * sq(val) - cnt[{val, 1}] + cnt[{val, 0}]), ans); } cout << ans; } int main(/*Уверенно*/) { //ios_base::sync_with_stdio(0); // cin.tie(0); /* freopen(".in", "r", stdin); freopen(".out", "w", stdout); */ // cin >> zxc; while(zxc--) { solve(); } 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...