제출 #77048

#제출 시각아이디문제언어결과실행 시간메모리
77048antimirageChessboard (IZhO18_chessboard)C++17
8 / 100
49 ms11288 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = 1e5 + 5;

int n, k, x[2][N], y[2][N];

long long ans = 1e18;

int main()
{
    cin >> n >> k;

    for (int i = 1; i <= k; i++)
    {
        scanf("%d%d", &x[0][i], &y[0][i]), x[0][i]--, y[0][i]--;
        scanf("%d%d", &x[1][i], &y[1][i]), x[1][i]--, y[1][i]--;
    }
    for (int i = 1; i * i <= n; i++)
    {
        if (n % i != 0) continue;

        long long res = 0;

        for (int j = 1; j <= k; j++)
        {
            if ((x[0][j] / i + y[0][j] / i) & 1)
                res++;
        }
//        cout << i << " --> " << min( res + (n * 1ll * n + 1) / 2 - (k - res), (k - res) + (n * 1ll * n) / 2  - res) << endl;
        ans = min(ans, min( res + (n * 1ll * n + 1) / 2 - (k - res), (k - res) + (n * 1ll * n) / 2  - res) );
    }
    cout << ans << endl;
}
/**
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

4 1
4 1 4 4
**/

컴파일 시 표준 에러 (stderr) 메시지

chessboard.cpp: In function 'int main()':
chessboard.cpp:17:53: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d", &x[0][i], &y[0][i]), x[0][i]--, y[0][i]--;
         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
chessboard.cpp:18:53: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d", &x[1][i], &y[1][i]), x[1][i]--, y[1][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...