Submission #584774

# Submission time Handle Problem Language Result Execution time Memory
584774 2022-06-28T02:46:43 Z benson1029 Art Class (IOI13_artclass) C++14
91 / 100
79 ms 21836 KB
#include "artclass.h"
#include <bits/stdc++.h>
using namespace std;

int h,w;
bool vis[500][500];
int v[500][500][3];
double avg[500][500][3];
int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};

bool valid(int x, int y) {
    return (x>=0&&y>=0&&x<h&&y<w);
}

bool near(int X1, int Y1, int X2, int Y2) {
    return (abs(v[X1][Y1][0]-v[X2][Y2][0]) + abs(v[X1][Y1][1]-v[X2][Y2][1]) + abs(v[X1][Y1][2]-v[X2][Y2][2])) <= 30;
}

bool near2(int X1, int Y1, int X2, int Y2) {
    return (abs(v[X1][Y1][0]-v[X2][Y2][0]) + abs(v[X1][Y1][1]-v[X2][Y2][1]) + abs(v[X1][Y1][2]-v[X2][Y2][2])) <= 10;
}

void dfs(int x, int y) {
    vis[x][y] = true;
    for(int i=0; i<4; i++) {
        if(!valid(x+dx[i], y+dy[i])) continue;
        if(vis[x+dx[i]][y+dy[i]]) continue;
        if(near(x, y, x+dx[i], y+dy[i])) {
            dfs(x+dx[i], y+dy[i]);
        }
    }
}

int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
    h = H;
    w = W;
    for(int i=0; i<h; i++) for(int j=0; j<w; j++) {
        v[i][j][0] = R[i][j];
        v[i][j][1] = G[i][j];
        v[i][j][2] = B[i][j];
    }
    int connected_component = 0;
    for(int i=0; i<h; i++) for(int j=0; j<w; j++) {
        if(!vis[i][j]) {
            dfs(i, j);
            connected_component++;
        }
    }
    if(connected_component <= 500) return 4;
    double r,g,b;
    int cntg = 0;
    for(int i=0; i<h; i++) for(int j=0; j<w; j++) {
        r += R[i][j];
        g += G[i][j];
        b += B[i][j];
        if(G[i][j]-50 > B[i][j] && G[i][j]+10 > R[i][j]) cntg++;
    }
    if(g > r && g > b) cntg += 100000;
    int cntsame = 0;
    for(int i=0; i<h; i++) {
        for(int j=0; j<w; j++) {
            if(i>=3 && near2(i, j, i-3, j)) cntsame++;
            if(j>=3 && near2(i, j, i, j-3)) cntsame++;
        }
    }
    if(cntg > 10000) return 2;
    if(cntsame>100000) return 1;
    return 3;
}

Compilation message

artclass.cpp: In function 'int style(int, int, int (*)[500], int (*)[500], int (*)[500])':
artclass.cpp:59:5: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   59 |     if(g > r && g > b) cntg += 100000;
      |     ^~
artclass.cpp:59:5: warning: 'g' may be used uninitialized in this function [-Wmaybe-uninitialized]
artclass.cpp:59:14: warning: 'b' may be used uninitialized in this function [-Wmaybe-uninitialized]
   59 |     if(g > r && g > b) cntg += 100000;
      |        ~~~~~~^~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 34 ms 4992 KB Output is correct
2 Correct 53 ms 8384 KB Output is correct
3 Correct 65 ms 9564 KB Output is correct
4 Correct 66 ms 8908 KB Output is correct
5 Correct 31 ms 4684 KB Output is correct
6 Incorrect 47 ms 6836 KB Output isn't correct
7 Correct 57 ms 11516 KB Output is correct
8 Correct 38 ms 5668 KB Output is correct
9 Correct 52 ms 16972 KB Output is correct
10 Correct 55 ms 9644 KB Output is correct
11 Correct 49 ms 7928 KB Output is correct
12 Correct 24 ms 3712 KB Output is correct
13 Correct 54 ms 7696 KB Output is correct
14 Correct 43 ms 8280 KB Output is correct
15 Correct 53 ms 8308 KB Output is correct
16 Correct 55 ms 7772 KB Output is correct
17 Correct 38 ms 8824 KB Output is correct
18 Correct 51 ms 16752 KB Output is correct
19 Correct 55 ms 21284 KB Output is correct
20 Incorrect 79 ms 9388 KB Output isn't correct
21 Correct 55 ms 9232 KB Output is correct
22 Correct 40 ms 5832 KB Output is correct
23 Correct 71 ms 10968 KB Output is correct
24 Correct 61 ms 10888 KB Output is correct
25 Correct 29 ms 10384 KB Output is correct
26 Incorrect 56 ms 11284 KB Output isn't correct
27 Correct 58 ms 9272 KB Output is correct
28 Correct 35 ms 10556 KB Output is correct
29 Correct 50 ms 7192 KB Output is correct
30 Correct 51 ms 7244 KB Output is correct
31 Incorrect 58 ms 7356 KB Output isn't correct
32 Correct 45 ms 14720 KB Output is correct
33 Correct 54 ms 10316 KB Output is correct
34 Correct 41 ms 14292 KB Output is correct
35 Correct 53 ms 9060 KB Output is correct
36 Correct 53 ms 8576 KB Output is correct
37 Correct 25 ms 3660 KB Output is correct
38 Correct 38 ms 13984 KB Output is correct
39 Incorrect 63 ms 9152 KB Output isn't correct
40 Correct 47 ms 6852 KB Output is correct
41 Correct 48 ms 10588 KB Output is correct
42 Incorrect 72 ms 11040 KB Output isn't correct
43 Correct 54 ms 8432 KB Output is correct
44 Correct 48 ms 7996 KB Output is correct
45 Correct 27 ms 4008 KB Output is correct
46 Correct 47 ms 8500 KB Output is correct
47 Correct 62 ms 12216 KB Output is correct
48 Correct 48 ms 6724 KB Output is correct
49 Correct 56 ms 11168 KB Output is correct
50 Correct 38 ms 9556 KB Output is correct
51 Correct 35 ms 13196 KB Output is correct
52 Correct 46 ms 12852 KB Output is correct
53 Incorrect 60 ms 11664 KB Output isn't correct
54 Correct 32 ms 4768 KB Output is correct
55 Correct 59 ms 9576 KB Output is correct
56 Correct 39 ms 6692 KB Output is correct
57 Incorrect 55 ms 17164 KB Output isn't correct
58 Correct 54 ms 6680 KB Output is correct
59 Correct 48 ms 8580 KB Output is correct
60 Correct 47 ms 8268 KB Output is correct
61 Correct 50 ms 9988 KB Output is correct
62 Correct 54 ms 20388 KB Output is correct
63 Correct 54 ms 7980 KB Output is correct
64 Correct 47 ms 6836 KB Output is correct
65 Correct 41 ms 13108 KB Output is correct
66 Correct 42 ms 7908 KB Output is correct
67 Correct 54 ms 17756 KB Output is correct
68 Correct 50 ms 8444 KB Output is correct
69 Incorrect 37 ms 10576 KB Output isn't correct
70 Correct 13 ms 2004 KB Output is correct
71 Incorrect 48 ms 13388 KB Output isn't correct
72 Correct 49 ms 14452 KB Output is correct
73 Correct 51 ms 7972 KB Output is correct
74 Correct 52 ms 9292 KB Output is correct
75 Correct 58 ms 21836 KB Output is correct
76 Correct 51 ms 8968 KB Output is correct
77 Correct 49 ms 9724 KB Output is correct
78 Correct 54 ms 8528 KB Output is correct
79 Correct 50 ms 7448 KB Output is correct
80 Correct 48 ms 13256 KB Output is correct
81 Correct 36 ms 12084 KB Output is correct
82 Incorrect 56 ms 11180 KB Output isn't correct
83 Correct 32 ms 5704 KB Output is correct
84 Correct 58 ms 11132 KB Output is correct
85 Correct 42 ms 5552 KB Output is correct
86 Correct 47 ms 9912 KB Output is correct
87 Correct 46 ms 17456 KB Output is correct
88 Correct 51 ms 6812 KB Output is correct
89 Correct 49 ms 7468 KB Output is correct
90 Correct 45 ms 6200 KB Output is correct
91 Correct 51 ms 8460 KB Output is correct
92 Correct 38 ms 11696 KB Output is correct
93 Correct 47 ms 8552 KB Output is correct
94 Correct 51 ms 7624 KB Output is correct
95 Correct 32 ms 4684 KB Output is correct
96 Incorrect 53 ms 8316 KB Output isn't correct
97 Correct 60 ms 18916 KB Output is correct
98 Incorrect 53 ms 7308 KB Output isn't correct
99 Incorrect 66 ms 12476 KB Output isn't correct
100 Correct 49 ms 10188 KB Output is correct
101 Correct 38 ms 7840 KB Output is correct
102 Correct 15 ms 8376 KB Output is correct