Submission #667816

#TimeUsernameProblemLanguageResultExecution timeMemory
667816Kaztaev_AlisherChessboard (IZhO18_chessboard)C++17
8 / 100
28 ms1364 KiB
//#pragma GCC optomize ("Ofast") //#pragma GCC optomize ("unroll-loops") //#pragma GCC target ("avx,avx2,fma") #include <bits/stdc++.h> #define F first #define S second #define pb push_back #define sz size #define cl clear #define ins insert #define ers erase #define pii pair < int , int > #define pll pair< long long , long long > #define all(x) x.begin() , x.end() #define ios ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout) #define tostr(x) to_string(x) #define tonum(s) atoi(s.c_str()) #define seon(x) setprecision(x) #define bpop(x) __builtin_popcount(x) #define deb(x) cerr << #x << " = " << x << endl; #define int ll typedef long long ll; typedef unsigned long long ull; typedef double db; typedef long double ldb; const double PI = 3.14159265; const ll N = 1e6+5 , M = 2e3+5; const ll mod = 1e9+7; const ll inf = 1e9; const ll INF = 1e18; using namespace std; int n; bool u[N]; vector<int> v; int cnt1[100005] , cnt11[100005]; void solve(){ ll k; cin >> n >> k; if(u[n] == 0){ ll cnt = 0 , cnt1 = 0; for(int i = 1; i <= k; i++){ ll x , y , x1 , y1; cin >> x >> y >> x1 >> y1; if(x % 2 == y % 2) cnt++; else cnt1++; } cout << min((n*n+1)/2-cnt+cnt1 , n*n/2-cnt1+cnt) <<"\n"; return; } else { ll mn = INF; for(int i = 1; i <= sqrtl(n); i++) { v.pb(i); if(i > 1) v.pb(n/i); } for(int i = 1; i <= k; i++){ int x , y , x1 , y1; cin >> x >> y >> x1 >> y1; x--; y--; for(int i = 0; i < v.sz(); i++){ if((x/v[i])%2 == (y/v[i])%2) cnt1[i]++; else cnt11[i]++; } } for(int i = 0; i < v.sz(); i++){ ll ob = (n*n)/(v[i]*v[i]); mn = min(mn , (ob+1)/2*v[i]*v[i] - cnt1[i] + cnt11[i]); mn = min(mn , ob/2*v[i]*v[i] - cnt11[i] + cnt1[i]); } cout << mn <<"\n"; } } signed main(){ ios; u[1] = 1; for(int i = 2; i <= N-5; i++){ if(u[i] == 1) continue; for(ll j = i*i; j <= N-5; j+=i) u[j] = 1; } solve(); 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 */

Compilation message (stderr)

chessboard.cpp: In function 'void solve()':
chessboard.cpp:66:21: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   66 |    for(int i = 0; i < v.sz(); i++){
      |                   ~~^~~~~~~~
chessboard.cpp:71:20: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   71 |   for(int i = 0; i < v.sz(); i++){
      |                  ~~^~~~~~~~
#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...