# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
77049 | 2018-09-20T11:50:35 Z | antimirage | Chessboard (IZhO18_chessboard) | C++17 | 35 ms | 1312 KB |
#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; long long calc (int i) { long long res = 0; for (int j = 1; j <= k; j++) { if ((x[0][j] / i + y[0][j] / i) & 1) res++; } return min( res + (n * 1ll * n + 1) / 2 - (k - res), (k - res) + (n * 1ll * n) / 2 - res); } 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; ans = min(ans, calc(i) ); ans = min(ans, calc(n / i) ); } 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 **/
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Incorrect | 2 ms | 508 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 35 ms | 1312 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 1312 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 1312 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 35 ms | 1312 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 376 KB | Output is correct |
2 | Incorrect | 2 ms | 508 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |