Submission #518536

# Submission time Handle Problem Language Result Execution time Memory
518536 2022-01-24T04:01:15 Z tabr Art Class (IOI13_artclass) C++17
10 / 100
63 ms 10324 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.015) {
        return 3;
    }
    assert(false);
    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 Correct 36 ms 3400 KB Output is correct
2 Correct 23 ms 2212 KB Output is correct
3 Correct 51 ms 5068 KB Output is correct
4 Correct 42 ms 4792 KB Output is correct
5 Correct 48 ms 4260 KB Output is correct
6 Correct 34 ms 4600 KB Output is correct
7 Runtime error 47 ms 9540 KB Execution killed with signal 6
8 Correct 47 ms 4728 KB Output is correct
9 Runtime error 36 ms 6780 KB Execution killed with signal 6
10 Runtime error 58 ms 10052 KB Execution killed with signal 6
11 Runtime error 43 ms 8108 KB Execution killed with signal 6
12 Runtime error 61 ms 10276 KB Execution killed with signal 6
13 Incorrect 29 ms 2976 KB Output isn't correct
14 Incorrect 51 ms 5060 KB Output isn't correct
15 Runtime error 40 ms 9048 KB Execution killed with signal 6
16 Incorrect 56 ms 3892 KB Output isn't correct
17 Runtime error 60 ms 10300 KB Execution killed with signal 6
18 Correct 45 ms 3908 KB Output is correct
19 Correct 40 ms 4292 KB Output is correct
20 Runtime error 48 ms 8788 KB Execution killed with signal 6
21 Correct 25 ms 2368 KB Output is correct
22 Correct 36 ms 4528 KB Output is correct
23 Runtime error 56 ms 10248 KB Execution killed with signal 6
24 Correct 13 ms 3660 KB Output is correct
25 Incorrect 42 ms 3864 KB Output isn't correct
26 Correct 47 ms 4632 KB Output is correct
27 Runtime error 43 ms 8132 KB Execution killed with signal 6
28 Correct 34 ms 3268 KB Output is correct
29 Runtime error 45 ms 8000 KB Execution killed with signal 6
30 Runtime error 46 ms 9468 KB Execution killed with signal 6
31 Correct 50 ms 4700 KB Output is correct
32 Correct 26 ms 4184 KB Output is correct
33 Runtime error 47 ms 8132 KB Execution killed with signal 6
34 Incorrect 63 ms 5180 KB Output isn't correct
35 Correct 33 ms 2884 KB Output is correct
36 Correct 46 ms 4820 KB Output is correct
37 Runtime error 49 ms 8656 KB Execution killed with signal 6
38 Runtime error 49 ms 9152 KB Execution killed with signal 6
39 Runtime error 45 ms 8260 KB Execution killed with signal 6
40 Correct 37 ms 3224 KB Output is correct
41 Runtime error 50 ms 9608 KB Execution killed with signal 6
42 Runtime error 42 ms 7996 KB Execution killed with signal 6
43 Incorrect 29 ms 4164 KB Output isn't correct
44 Correct 44 ms 3800 KB Output is correct
45 Correct 47 ms 4816 KB Output is correct
46 Runtime error 49 ms 8880 KB Execution killed with signal 6
47 Runtime error 46 ms 8304 KB Execution killed with signal 6
48 Incorrect 42 ms 4664 KB Output isn't correct
49 Runtime error 58 ms 10180 KB Execution killed with signal 6
50 Runtime error 48 ms 8580 KB Execution killed with signal 6
51 Correct 50 ms 4876 KB Output is correct
52 Runtime error 62 ms 9512 KB Execution killed with signal 6
53 Correct 43 ms 4800 KB Output is correct
54 Correct 13 ms 1228 KB Output is correct
55 Correct 48 ms 4804 KB Output is correct
56 Correct 45 ms 4816 KB Output is correct
57 Runtime error 49 ms 8388 KB Execution killed with signal 6
58 Runtime error 51 ms 9156 KB Execution killed with signal 6
59 Incorrect 54 ms 5144 KB Output isn't correct
60 Runtime error 57 ms 10268 KB Execution killed with signal 6
61 Runtime error 51 ms 8588 KB Execution killed with signal 6
62 Runtime error 48 ms 8896 KB Execution killed with signal 6
63 Correct 44 ms 4804 KB Output is correct
64 Correct 47 ms 4888 KB Output is correct
65 Runtime error 47 ms 8644 KB Execution killed with signal 6
66 Runtime error 59 ms 10260 KB Execution killed with signal 6
67 Correct 44 ms 4860 KB Output is correct
68 Correct 54 ms 4548 KB Output is correct
69 Runtime error 46 ms 9540 KB Execution killed with signal 6
70 Correct 44 ms 4076 KB Output is correct
71 Runtime error 49 ms 9672 KB Execution killed with signal 6
72 Correct 30 ms 2948 KB Output is correct
73 Runtime error 57 ms 10324 KB Execution killed with signal 6
74 Correct 47 ms 4932 KB Output is correct
75 Runtime error 49 ms 9628 KB Execution killed with signal 6
76 Runtime error 62 ms 8448 KB Execution killed with signal 6
77 Runtime error 57 ms 10052 KB Execution killed with signal 6
78 Incorrect 33 ms 4420 KB Output isn't correct
79 Correct 30 ms 4272 KB Output is correct
80 Correct 42 ms 4752 KB Output is correct
81 Runtime error 60 ms 10276 KB Execution killed with signal 6
82 Correct 37 ms 3416 KB Output is correct
83 Runtime error 57 ms 10184 KB Execution killed with signal 6
84 Correct 34 ms 4408 KB Output is correct
85 Incorrect 33 ms 4376 KB Output isn't correct
86 Correct 44 ms 4676 KB Output is correct
87 Correct 48 ms 4964 KB Output is correct
88 Incorrect 48 ms 4932 KB Output isn't correct
89 Runtime error 49 ms 9604 KB Execution killed with signal 6
90 Correct 42 ms 4116 KB Output is correct
91 Runtime error 30 ms 5480 KB Execution killed with signal 6
92 Correct 30 ms 2252 KB Output is correct
93 Correct 47 ms 4164 KB Output is correct
94 Correct 31 ms 2776 KB Output is correct
95 Correct 34 ms 4372 KB Output is correct
96 Correct 45 ms 4364 KB Output is correct
97 Correct 35 ms 4324 KB Output is correct
98 Correct 57 ms 4400 KB Output is correct
99 Correct 41 ms 3784 KB Output is correct
100 Correct 38 ms 4428 KB Output is correct
101 Correct 37 ms 4444 KB Output is correct
102 Correct 44 ms 4804 KB Output is correct