Submission #342714

# Submission time Handle Problem Language Result Execution time Memory
342714 2021-01-02T16:37:36 Z koketsu Chessboard (IZhO18_chessboard) C++14
Compilation error
0 ms 0 KB
#include <bits/stdc++.h>
#define pb push_back
#define LL long long
#define Kultivator ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define int LL

using namespace std;

const LL Mxn = 1e6 + 7;
const LL Mod = 1e9 + 7;
const LL Inf = 1e14 + 7;

bool Prime(int N){
    bool Used = false;
    for(int i = 2; i <= sqrt(N); i++){
        if(N % i == 0){
            Used = true;
            break;
        }
    }
    return Used;
}

bool Get(int x, int y, int d){
    return (x / d + y / d) % 2;
}

void Ans1(int N){
    int Ans = Mxn;
    for(int i = 1; i < N; i++){
        if(N % i == 0){
            Ans = min(Ans, (N * N) / (2 * i * i) * (i * i));
        }
    }
    cout << Ans;
}

void Ans2(int N, int K){
    LL Cnt1 = 0, Cnt2 = 0;
    for(int i = 1, x1, y1, x2, y2; i <= K; i++){
        cin >> x1 >> y1 >> x2 >> y2;
        bool Num = Get(x2, y2, 1);
        if(!Num){
            Cnt1++;
        } else {
            Cnt2++;
        }
    }
    cout << min(N * N / 2 - Cnt2 + Cnt1, N * N / 2 + 1 - Cnt1 + Cnt2);
}

void Ans3(int N, int K){
    int Ans = LONG_MAX;
    vector <int> F;
    vector <pair <int, int>> P(N, {0, 0});
    for(int i = 1; i <= sqrt(N); i++){
        if(N % i == 0){
            F.pb(i);
            if(N / i != i && i > 1){
                F.pb(N / i);
            }
        }
    }
    for(int i = 1, x1, y1, x2, y2; i <= K; i++){
        cin >> x1 >> y1 >> x2 >> y2;
        for(auto i : F){
            if(((x+d-1)/d+(y+d-1)/d) % 2){
                P[i].first++;
            } else {
                P[i].second++;
            }
        }
    }
    for(auto i : F){
        Ans = min(Ans, ((N * N) / (2 * i * i)) + (i * i) + P[i].first - P[i].second);
        Ans = min(Ans, ((N * N) / (2 * i * i)) - P[i].first + P[i].second);
    }
    cout << Ans;
}

signed main(){
    Kultivator;
    LL N, K;
    cin >> N >> K;
    if(!K){
        Ans1(N);
    } else if(!Prime(N)){
        Ans2(N, K);
    } else {
        Ans3(N, K);
    }
}

Compilation message

chessboard.cpp: In function 'void Ans3(long long int, long long int)':
chessboard.cpp:67:18: error: 'x' was not declared in this scope
   67 |             if(((x+d-1)/d+(y+d-1)/d) % 2){
      |                  ^
chessboard.cpp:67:20: error: 'd' was not declared in this scope
   67 |             if(((x+d-1)/d+(y+d-1)/d) % 2){
      |                    ^
chessboard.cpp:67:28: error: 'y' was not declared in this scope
   67 |             if(((x+d-1)/d+(y+d-1)/d) % 2){
      |                            ^