Submission #518538

# Submission time Handle Problem Language Result Execution time Memory
518538 2022-01-24T04:06:16 Z tabr Art Class (IOI13_artclass) C++17
27 / 100
74 ms 9692 KB
#include <bits/stdc++.h>
using namespace std;
#ifdef tabr
#include "library/debug.cpp"
#else
#define debug(...)
#endif

#ifndef tabr
#include "artclass.h"
#endif

struct dsu {
    vector<int> p;
    vector<int> sz;
    int n;

    dsu(int _n) : n(_n) {
        p.resize(n);
        iota(p.begin(), p.end(), 0);
        sz.assign(n, 1);
    }

    inline int get(int x) {
        if (p[x] == x) {
            return x;
        } else {
            return p[x] = get(p[x]);
        }
    }

    inline bool unite(int x, int y) {
        x = get(x);
        y = get(y);
        if (x == y) {
            return false;
        }
        if (sz[x] > sz[y]) {
            swap(x, y);
        }
        p[x] = y;
        sz[y] += sz[x];
        return true;
    }

    inline bool same(int x, int y) {
        return (get(x) == get(y));
    }
};

int style(int h, int w, int r[500][500], int g[500][500], int b[500][500]) {
    dsu uf(h * w);
    for (int i = 0; i < h; i++) {
        for (int j = 0; j < w - 1; j++) {
            int dr = abs(r[i][j] - r[i][j + 1]);
            int dg = abs(g[i][j] - g[i][j + 1]);
            int db = abs(b[i][j] - b[i][j + 1]);
            if (min({dr, dg, db}) < 30) {
                uf.unite(i * w + j, i * w + j + 1);
            }
        }
    }
    for (int i = 0; i < h - 1; i++) {
        for (int j = 0; j < w; j++) {
            int dr = abs(r[i][j] - r[i + 1][j]);
            int dg = abs(g[i][j] - g[i + 1][j]);
            int db = abs(b[i][j] - b[i + 1][j]);
            if (min({dr, dg, db}) < 30) {
                uf.unite(i * w + j, i * w + j + w);
            }
        }
    }
    int cnt = 0;
    for (int i = 0; i < h * w; i++) {
        if (uf.get(i) == i) {
            cnt++;
        }
    }
    double ratio1 = 1.0 * cnt / (h * w);
    cnt = 0;
    for (int i = 0; i < h; i++) {
        for (int j = 0; j < w; j++) {
            int dr = abs(r[i][j] - 130);
            int dg = abs(g[i][j] - 100);
            int db = abs(b[i][j] - 50);
            if (max({dr, dg, db}) < 20) {
                cnt++;
            }
        }
    }
    double ratio2 = 1.0 * cnt / (h * w);
    debug(ratio1);
    debug(ratio2);
    if (ratio1 < 0.0001) {
        return 4;
    }
    if (ratio1 > 0.02) {
        assert(false);
        return 3;
    }
    if (ratio2 > 0.01) {
        return 2;
    }
    return 1;
}

#ifdef tabr
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int h, w;
    cin >> h >> w;
    int r[500][500];
    int g[500][500];
    int b[500][500];
    for (int i = 0; i < h; i++) {
        for (int j = 0; j < w; j++) {
            cin >> r[i][j] >> g[i][j] >> b[i][j];
        }
    }
    cout << style(h, w, r, g, b) << '\n';
    return 0;
}
#endif
# Verdict Execution time Memory Grader output
1 Runtime error 53 ms 9540 KB Execution killed with signal 6
2 Correct 46 ms 3912 KB Output is correct
3 Correct 53 ms 4280 KB Output is correct
4 Runtime error 57 ms 8848 KB Execution killed with signal 6
5 Runtime error 47 ms 9188 KB Execution killed with signal 6
6 Correct 56 ms 5232 KB Output is correct
7 Runtime error 50 ms 9352 KB Execution killed with signal 6
8 Runtime error 48 ms 9372 KB Execution killed with signal 6
9 Runtime error 59 ms 9692 KB Execution killed with signal 6
10 Correct 47 ms 4832 KB Output is correct
11 Correct 31 ms 4380 KB Output is correct
12 Incorrect 48 ms 4584 KB Output isn't correct
13 Runtime error 26 ms 4428 KB Execution killed with signal 6
14 Correct 48 ms 4236 KB Output is correct
15 Runtime error 33 ms 5576 KB Execution killed with signal 6
16 Correct 48 ms 4188 KB Output is correct
17 Correct 49 ms 4868 KB Output is correct
18 Correct 50 ms 4524 KB Output is correct
19 Runtime error 14 ms 2360 KB Execution killed with signal 6
20 Incorrect 45 ms 4340 KB Output isn't correct
21 Correct 44 ms 4548 KB Output is correct
22 Incorrect 55 ms 5076 KB Output isn't correct
23 Correct 50 ms 4972 KB Output is correct
24 Correct 56 ms 5068 KB Output is correct
25 Correct 16 ms 3660 KB Output is correct
26 Correct 40 ms 4676 KB Output is correct
27 Correct 48 ms 4932 KB Output is correct
28 Runtime error 39 ms 8644 KB Execution killed with signal 6
29 Incorrect 36 ms 4444 KB Output isn't correct
30 Runtime error 43 ms 6700 KB Execution killed with signal 6
31 Correct 58 ms 4924 KB Output is correct
32 Correct 47 ms 4888 KB Output is correct
33 Runtime error 41 ms 6976 KB Execution killed with signal 6
34 Runtime error 27 ms 4420 KB Execution killed with signal 6
35 Correct 51 ms 5088 KB Output is correct
36 Correct 50 ms 4832 KB Output is correct
37 Correct 46 ms 4816 KB Output is correct
38 Incorrect 29 ms 2768 KB Output isn't correct
39 Incorrect 58 ms 5064 KB Output isn't correct
40 Correct 45 ms 4832 KB Output is correct
41 Incorrect 56 ms 4920 KB Output isn't correct
42 Incorrect 74 ms 5060 KB Output isn't correct
43 Correct 26 ms 4068 KB Output is correct
44 Incorrect 46 ms 4744 KB Output isn't correct
45 Runtime error 38 ms 6344 KB Execution killed with signal 6
46 Correct 45 ms 4740 KB Output is correct
47 Correct 46 ms 4072 KB Output is correct
48 Correct 37 ms 3396 KB Output is correct
49 Correct 59 ms 5044 KB Output is correct
50 Correct 45 ms 4772 KB Output is correct
51 Incorrect 42 ms 4056 KB Output isn't correct
52 Correct 48 ms 4804 KB Output is correct
53 Incorrect 52 ms 4876 KB Output isn't correct
54 Runtime error 39 ms 5452 KB Execution killed with signal 6
55 Incorrect 49 ms 4460 KB Output isn't correct
56 Correct 42 ms 4036 KB Output is correct
57 Runtime error 58 ms 8752 KB Execution killed with signal 6
58 Correct 61 ms 5160 KB Output is correct
59 Correct 41 ms 4792 KB Output is correct
60 Correct 44 ms 4268 KB Output is correct
61 Correct 42 ms 4132 KB Output is correct
62 Runtime error 51 ms 8068 KB Execution killed with signal 6
63 Correct 65 ms 4472 KB Output is correct
64 Runtime error 48 ms 9404 KB Execution killed with signal 6
65 Correct 65 ms 4336 KB Output is correct
66 Runtime error 45 ms 9020 KB Execution killed with signal 6
67 Correct 42 ms 3908 KB Output is correct
68 Correct 47 ms 4332 KB Output is correct
69 Correct 58 ms 5084 KB Output is correct
70 Runtime error 45 ms 7692 KB Execution killed with signal 6
71 Correct 45 ms 4784 KB Output is correct
72 Correct 61 ms 5020 KB Output is correct
73 Correct 37 ms 4548 KB Output is correct
74 Correct 42 ms 4676 KB Output is correct
75 Correct 44 ms 4804 KB Output is correct
76 Correct 44 ms 4908 KB Output is correct
77 Incorrect 49 ms 4312 KB Output isn't correct
78 Correct 56 ms 5160 KB Output is correct
79 Correct 41 ms 4676 KB Output is correct
80 Incorrect 31 ms 2884 KB Output isn't correct
81 Correct 49 ms 3976 KB Output is correct
82 Runtime error 50 ms 8564 KB Execution killed with signal 6
83 Correct 37 ms 4420 KB Output is correct
84 Correct 40 ms 4336 KB Output is correct
85 Correct 46 ms 4792 KB Output is correct
86 Correct 56 ms 4072 KB Output is correct
87 Runtime error 46 ms 7748 KB Execution killed with signal 6
88 Correct 55 ms 5208 KB Output is correct
89 Runtime error 31 ms 4692 KB Execution killed with signal 6
90 Incorrect 60 ms 5124 KB Output isn't correct
91 Runtime error 55 ms 7876 KB Execution killed with signal 6
92 Correct 42 ms 4468 KB Output is correct
93 Correct 55 ms 5064 KB Output is correct
94 Correct 33 ms 4292 KB Output is correct
95 Runtime error 39 ms 5452 KB Execution killed with signal 6
96 Runtime error 56 ms 8480 KB Execution killed with signal 6
97 Correct 37 ms 4548 KB Output is correct
98 Incorrect 31 ms 4192 KB Output isn't correct
99 Correct 48 ms 4224 KB Output is correct
100 Correct 47 ms 4860 KB Output is correct
101 Correct 48 ms 4328 KB Output is correct
102 Runtime error 40 ms 6584 KB Execution killed with signal 6