Submission #554080

# Submission time Handle Problem Language Result Execution time Memory
554080 2022-04-27T16:06:14 Z elazarkoren Art Class (IOI13_artclass) C++17
18 / 100
59 ms 6056 KB
#include "artclass.h"
#include <bits/stdc++.h>
#define x first
#define y second
#define chkmin(a, b) a = min(a, b)
#define chkmax(a, b) a = max(a, b)
#define all(v) v.begin(), v.end()
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pii;
typedef vector<pii> vii;

const int infinity = 1e9;

struct Style{
    int red, green, blue, gray;
    Style() {}
    Style(int r, int g, int b, int gr): red(r), green(g), blue(b), gray(gr) {}
    int Close(int r, int g, int b, int gr) {
        return abs(r - red) + abs(g - green) + abs(b - blue) + abs(gr - gray);
    }
};

Style s[] = {Style(), Style(146, 166, 146, 167), Style(67, 97, 63, 87), Style(106, 128, 106, 124), Style(54, 89, 54, 100)};

int style(int h, int w, int r[500][500], int g[500][500], int b[500][500]) {
    ll sum_r = 0, sum_g = 0, sum_b = 0, gray_scale = 0;
    for (int i = 0; i < h; i++) {
        for (int j = 0; j < w; j++) {
            sum_r += r[i][j], sum_g += g[i][j], sum_b += b[i][j];
            gray_scale += (r[i][j] + g[i][j] + b[i][j]) / 3;
        }
    }
    sum_r /= (h * w);
    sum_g /= (h * w);
    sum_b /= (h * w);
    gray_scale /= (h * w);
    pii ans = {infinity, 0};
    for (int i = 1; i <= 4; i++) {
        pii q = {s[i].Close(sum_r, sum_g, sum_b, gray_scale), i};
        chkmin(ans, q);
    }
    return ans.y;
}
# Verdict Execution time Memory Grader output
1 Correct 32 ms 4824 KB Output is correct
2 Correct 48 ms 5844 KB Output is correct
3 Correct 48 ms 4944 KB Output is correct
4 Correct 38 ms 4356 KB Output is correct
5 Correct 42 ms 4728 KB Output is correct
6 Correct 52 ms 5928 KB Output is correct
7 Correct 41 ms 5060 KB Output is correct
8 Correct 45 ms 4864 KB Output is correct
9 Incorrect 22 ms 2456 KB Output isn't correct
10 Incorrect 44 ms 5424 KB Output isn't correct
11 Incorrect 36 ms 5068 KB Output isn't correct
12 Incorrect 40 ms 5324 KB Output isn't correct
13 Incorrect 41 ms 5276 KB Output isn't correct
14 Correct 51 ms 5836 KB Output is correct
15 Correct 23 ms 2640 KB Output is correct
16 Incorrect 45 ms 5412 KB Output isn't correct
17 Incorrect 33 ms 4556 KB Output isn't correct
18 Incorrect 40 ms 5164 KB Output isn't correct
19 Incorrect 41 ms 5048 KB Output isn't correct
20 Incorrect 36 ms 5080 KB Output isn't correct
21 Incorrect 44 ms 5196 KB Output isn't correct
22 Correct 41 ms 4288 KB Output is correct
23 Incorrect 34 ms 3944 KB Output isn't correct
24 Correct 47 ms 4872 KB Output is correct
25 Incorrect 46 ms 5696 KB Output isn't correct
26 Correct 45 ms 5304 KB Output is correct
27 Correct 28 ms 3028 KB Output is correct
28 Correct 53 ms 5848 KB Output is correct
29 Correct 40 ms 5180 KB Output is correct
30 Correct 39 ms 4352 KB Output is correct
31 Correct 38 ms 4300 KB Output is correct
32 Incorrect 30 ms 4556 KB Output isn't correct
33 Incorrect 25 ms 4312 KB Output isn't correct
34 Incorrect 46 ms 5196 KB Output isn't correct
35 Correct 43 ms 5328 KB Output is correct
36 Incorrect 42 ms 5216 KB Output isn't correct
37 Incorrect 26 ms 3072 KB Output isn't correct
38 Incorrect 44 ms 4788 KB Output isn't correct
39 Incorrect 48 ms 5812 KB Output isn't correct
40 Incorrect 42 ms 5288 KB Output isn't correct
41 Incorrect 40 ms 5248 KB Output isn't correct
42 Correct 49 ms 5936 KB Output is correct
43 Correct 42 ms 5348 KB Output is correct
44 Correct 32 ms 3812 KB Output is correct
45 Correct 42 ms 4812 KB Output is correct
46 Incorrect 33 ms 4924 KB Output isn't correct
47 Incorrect 38 ms 5040 KB Output isn't correct
48 Correct 34 ms 4732 KB Output is correct
49 Incorrect 38 ms 4428 KB Output isn't correct
50 Correct 41 ms 4428 KB Output is correct
51 Correct 50 ms 5864 KB Output is correct
52 Correct 42 ms 4316 KB Output is correct
53 Correct 47 ms 5836 KB Output is correct
54 Incorrect 33 ms 4696 KB Output isn't correct
55 Incorrect 44 ms 5664 KB Output isn't correct
56 Incorrect 28 ms 3236 KB Output isn't correct
57 Correct 40 ms 4556 KB Output is correct
58 Correct 52 ms 6040 KB Output is correct
59 Incorrect 44 ms 5324 KB Output isn't correct
60 Incorrect 46 ms 5388 KB Output isn't correct
61 Correct 45 ms 4508 KB Output is correct
62 Correct 39 ms 4576 KB Output is correct
63 Correct 32 ms 3688 KB Output is correct
64 Correct 36 ms 4180 KB Output is correct
65 Correct 50 ms 5952 KB Output is correct
66 Correct 39 ms 4208 KB Output is correct
67 Incorrect 23 ms 2380 KB Output isn't correct
68 Correct 39 ms 4232 KB Output is correct
69 Correct 35 ms 4772 KB Output is correct
70 Correct 39 ms 4444 KB Output is correct
71 Incorrect 43 ms 4772 KB Output isn't correct
72 Incorrect 42 ms 5428 KB Output isn't correct
73 Correct 29 ms 4672 KB Output is correct
74 Incorrect 38 ms 4312 KB Output isn't correct
75 Incorrect 45 ms 5324 KB Output isn't correct
76 Correct 56 ms 5708 KB Output is correct
77 Correct 27 ms 3108 KB Output is correct
78 Incorrect 48 ms 5304 KB Output isn't correct
79 Correct 38 ms 5048 KB Output is correct
80 Incorrect 35 ms 4984 KB Output isn't correct
81 Incorrect 40 ms 5392 KB Output isn't correct
82 Correct 55 ms 5584 KB Output is correct
83 Incorrect 59 ms 6056 KB Output isn't correct
84 Correct 45 ms 4772 KB Output is correct
85 Correct 33 ms 3528 KB Output is correct
86 Incorrect 42 ms 5292 KB Output isn't correct
87 Correct 34 ms 4916 KB Output is correct
88 Correct 41 ms 4672 KB Output is correct
89 Correct 13 ms 3652 KB Output is correct
90 Incorrect 32 ms 4616 KB Output isn't correct
91 Correct 11 ms 1332 KB Output is correct
92 Incorrect 51 ms 5956 KB Output isn't correct
93 Incorrect 42 ms 4500 KB Output isn't correct
94 Correct 32 ms 3788 KB Output is correct
95 Incorrect 27 ms 3020 KB Output isn't correct
96 Incorrect 37 ms 5084 KB Output isn't correct
97 Incorrect 55 ms 5516 KB Output isn't correct
98 Correct 42 ms 4572 KB Output is correct
99 Incorrect 46 ms 5344 KB Output isn't correct
100 Correct 32 ms 4712 KB Output is correct
101 Correct 42 ms 5240 KB Output is correct
102 Correct 50 ms 5652 KB Output is correct