Submission #880793

# Submission time Handle Problem Language Result Execution time Memory
880793 2023-11-30T05:03:38 Z dimashhh Chessboard (IZhO18_chessboard) C++17
47 / 100
382 ms 262144 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e6 + 12;
#define int long long
unordered_map<int,int> odd[N],even[N];
ll col_eq(int k,int x,int y,int x1,int y1){
    ll ret = (odd[x1][k] - odd[x - 1][k]) * (odd[y1][k] - odd[y - 1][k]);
    ret += (even[x1][k] - even[x - 1][k]) *1ll* (even[y1][k] - even[y - 1][k]);
    return ret;
}

ll col_non_eq(int k,int x,int y,int x1,int y1){
    return (x1 - x + 1) *1ll* (y1 - y + 1) - col_eq(k,x,y,x1,y1);
}
vector<pair<pair<int,int>,pair<int,int>>> a;
ll n,k;
int get(ll del){
    ll res1 = 0,res2 = 0;
    for(auto [x,y]:a){
        res1 += col_eq(del,x.first,x.second,y.first,y.second);
        res2 += col_non_eq(del,x.first,x.second,y.first,y.second);
    }
    ll x = res1;
    res1 = ((n * n / del / del) + 1) / 2 * (del * del) - res1 + res2;
    res2 = ((n * n / del / del)) / 2 * (del * del) + x - res2;
    // cout << ((n * n / del / del) + 1) / 2 * del * del - res2 << '\n';
    return min(res1,res2);
}
void test(){
    cin >> n >> k;
    for(int i = 1;i <= k;i++){
        int x,y,x1,y1;
        cin >> x >> y >> x1 >> y1;
        a.push_back({{x,y},{x1,y1}});
    }
    ll res = 1e10;
    for(int i = 1;i < n;i++){
        if(n % i == 0){
            for(int j = 1;j <= n;j++){
                int x = (j + i - 1) / i;
                odd[j][i] = odd[j - 1][i];
                even[j][i] = even[j - 1][i];
                if(x & 1){
                    odd[j][i]++;
                }else{
                    even[j][i]++;
                }
            }
        }
    }
    for(int i = 1;i < n;i++){
        if(n % i == 0){
            res = min(res,1ll*get(i));
        }
    }
    cout << res;
}
main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    test();
}

Compilation message

chessboard.cpp:59:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   59 | main(){
      | ^~~~
# Verdict Execution time Memory Grader output
1 Correct 31 ms 110172 KB Output is correct
2 Correct 27 ms 109916 KB Output is correct
3 Correct 27 ms 109916 KB Output is correct
4 Correct 26 ms 109916 KB Output is correct
5 Correct 26 ms 109792 KB Output is correct
6 Correct 26 ms 110064 KB Output is correct
7 Correct 26 ms 109916 KB Output is correct
8 Correct 27 ms 109912 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 91 ms 129268 KB Output is correct
2 Correct 50 ms 114128 KB Output is correct
3 Correct 95 ms 134604 KB Output is correct
4 Correct 44 ms 113104 KB Output is correct
5 Correct 84 ms 128852 KB Output is correct
6 Correct 64 ms 125388 KB Output is correct
7 Correct 43 ms 116736 KB Output is correct
8 Correct 68 ms 125644 KB Output is correct
9 Correct 84 ms 123836 KB Output is correct
10 Correct 66 ms 123384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 109920 KB Output is correct
2 Correct 30 ms 109912 KB Output is correct
3 Correct 28 ms 109912 KB Output is correct
4 Correct 27 ms 109916 KB Output is correct
5 Correct 26 ms 109916 KB Output is correct
6 Correct 26 ms 109916 KB Output is correct
7 Correct 31 ms 109916 KB Output is correct
8 Correct 29 ms 109992 KB Output is correct
9 Correct 28 ms 109916 KB Output is correct
10 Correct 26 ms 109916 KB Output is correct
11 Correct 27 ms 110100 KB Output is correct
12 Correct 27 ms 110172 KB Output is correct
13 Correct 27 ms 109916 KB Output is correct
14 Correct 27 ms 110052 KB Output is correct
15 Correct 26 ms 109916 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 109920 KB Output is correct
2 Correct 30 ms 109912 KB Output is correct
3 Correct 28 ms 109912 KB Output is correct
4 Correct 27 ms 109916 KB Output is correct
5 Correct 26 ms 109916 KB Output is correct
6 Correct 26 ms 109916 KB Output is correct
7 Correct 31 ms 109916 KB Output is correct
8 Correct 29 ms 109992 KB Output is correct
9 Correct 28 ms 109916 KB Output is correct
10 Correct 26 ms 109916 KB Output is correct
11 Correct 27 ms 110100 KB Output is correct
12 Correct 27 ms 110172 KB Output is correct
13 Correct 27 ms 109916 KB Output is correct
14 Correct 27 ms 110052 KB Output is correct
15 Correct 26 ms 109916 KB Output is correct
16 Correct 44 ms 111056 KB Output is correct
17 Correct 51 ms 115924 KB Output is correct
18 Correct 76 ms 115808 KB Output is correct
19 Correct 331 ms 114892 KB Output is correct
20 Correct 382 ms 115156 KB Output is correct
21 Correct 58 ms 115148 KB Output is correct
22 Correct 31 ms 111448 KB Output is correct
23 Correct 66 ms 112076 KB Output is correct
24 Correct 77 ms 115916 KB Output is correct
25 Correct 35 ms 110812 KB Output is correct
26 Correct 54 ms 112076 KB Output is correct
27 Correct 77 ms 115920 KB Output is correct
28 Correct 73 ms 115412 KB Output is correct
29 Correct 37 ms 112084 KB Output is correct
30 Correct 28 ms 110288 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 91 ms 129268 KB Output is correct
2 Correct 50 ms 114128 KB Output is correct
3 Correct 95 ms 134604 KB Output is correct
4 Correct 44 ms 113104 KB Output is correct
5 Correct 84 ms 128852 KB Output is correct
6 Correct 64 ms 125388 KB Output is correct
7 Correct 43 ms 116736 KB Output is correct
8 Correct 68 ms 125644 KB Output is correct
9 Correct 84 ms 123836 KB Output is correct
10 Correct 66 ms 123384 KB Output is correct
11 Correct 26 ms 109920 KB Output is correct
12 Correct 30 ms 109912 KB Output is correct
13 Correct 28 ms 109912 KB Output is correct
14 Correct 27 ms 109916 KB Output is correct
15 Correct 26 ms 109916 KB Output is correct
16 Correct 26 ms 109916 KB Output is correct
17 Correct 31 ms 109916 KB Output is correct
18 Correct 29 ms 109992 KB Output is correct
19 Correct 28 ms 109916 KB Output is correct
20 Correct 26 ms 109916 KB Output is correct
21 Correct 27 ms 110100 KB Output is correct
22 Correct 27 ms 110172 KB Output is correct
23 Correct 27 ms 109916 KB Output is correct
24 Correct 27 ms 110052 KB Output is correct
25 Correct 26 ms 109916 KB Output is correct
26 Correct 44 ms 111056 KB Output is correct
27 Correct 51 ms 115924 KB Output is correct
28 Correct 76 ms 115808 KB Output is correct
29 Correct 331 ms 114892 KB Output is correct
30 Correct 382 ms 115156 KB Output is correct
31 Correct 58 ms 115148 KB Output is correct
32 Correct 31 ms 111448 KB Output is correct
33 Correct 66 ms 112076 KB Output is correct
34 Correct 77 ms 115916 KB Output is correct
35 Correct 35 ms 110812 KB Output is correct
36 Correct 54 ms 112076 KB Output is correct
37 Correct 77 ms 115920 KB Output is correct
38 Correct 73 ms 115412 KB Output is correct
39 Correct 37 ms 112084 KB Output is correct
40 Correct 28 ms 110288 KB Output is correct
41 Runtime error 301 ms 262144 KB Execution killed with signal 9
42 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 31 ms 110172 KB Output is correct
2 Correct 27 ms 109916 KB Output is correct
3 Correct 27 ms 109916 KB Output is correct
4 Correct 26 ms 109916 KB Output is correct
5 Correct 26 ms 109792 KB Output is correct
6 Correct 26 ms 110064 KB Output is correct
7 Correct 26 ms 109916 KB Output is correct
8 Correct 27 ms 109912 KB Output is correct
9 Correct 91 ms 129268 KB Output is correct
10 Correct 50 ms 114128 KB Output is correct
11 Correct 95 ms 134604 KB Output is correct
12 Correct 44 ms 113104 KB Output is correct
13 Correct 84 ms 128852 KB Output is correct
14 Correct 64 ms 125388 KB Output is correct
15 Correct 43 ms 116736 KB Output is correct
16 Correct 68 ms 125644 KB Output is correct
17 Correct 84 ms 123836 KB Output is correct
18 Correct 66 ms 123384 KB Output is correct
19 Correct 26 ms 109920 KB Output is correct
20 Correct 30 ms 109912 KB Output is correct
21 Correct 28 ms 109912 KB Output is correct
22 Correct 27 ms 109916 KB Output is correct
23 Correct 26 ms 109916 KB Output is correct
24 Correct 26 ms 109916 KB Output is correct
25 Correct 31 ms 109916 KB Output is correct
26 Correct 29 ms 109992 KB Output is correct
27 Correct 28 ms 109916 KB Output is correct
28 Correct 26 ms 109916 KB Output is correct
29 Correct 27 ms 110100 KB Output is correct
30 Correct 27 ms 110172 KB Output is correct
31 Correct 27 ms 109916 KB Output is correct
32 Correct 27 ms 110052 KB Output is correct
33 Correct 26 ms 109916 KB Output is correct
34 Correct 44 ms 111056 KB Output is correct
35 Correct 51 ms 115924 KB Output is correct
36 Correct 76 ms 115808 KB Output is correct
37 Correct 331 ms 114892 KB Output is correct
38 Correct 382 ms 115156 KB Output is correct
39 Correct 58 ms 115148 KB Output is correct
40 Correct 31 ms 111448 KB Output is correct
41 Correct 66 ms 112076 KB Output is correct
42 Correct 77 ms 115916 KB Output is correct
43 Correct 35 ms 110812 KB Output is correct
44 Correct 54 ms 112076 KB Output is correct
45 Correct 77 ms 115920 KB Output is correct
46 Correct 73 ms 115412 KB Output is correct
47 Correct 37 ms 112084 KB Output is correct
48 Correct 28 ms 110288 KB Output is correct
49 Runtime error 301 ms 262144 KB Execution killed with signal 9
50 Halted 0 ms 0 KB -