Submission #708053

# Submission time Handle Problem Language Result Execution time Memory
708053 2023-03-11T00:42:08 Z yeyso Art Class (IOI13_artclass) C++14
40 / 100
73 ms 6192 KB
#include "artclass.h"
#include <bits/stdc++.h>
using namespace std;

int style(int h, int w, int R[500][500], int G[500][500], int B[500][500]) {
    //return 2;
    vector<vector<int>> gr(h, vector<int>(w, 0));
    vector<vector<int>> gg(h, vector<int>(w, 0));
    vector<vector<int>> gb(h, vector<int>(w, 0));

    vector<int> grd(500, 0);
    vector<int> grg(500, 0);
    vector<int> grb(500, 0);

    int mcir = 0;
    int mcig = 0;
    int mcib = 0;

    int noiser = 0;
    int noiseg = 0;
    int noiseb = 0;

    int dr, dg, db;
    for(int i = 1; i < h; i ++){
        for(int j = 1; j < w; j ++){
            dr = 2 * R[i][j] - R[i-1][j] - R[i][j-1];
            dg = 2 * G[i][j] - G[i-1][j] - G[i][j-1];
            db = 2 * B[i][j] - B[i-1][j] - B[i][j-1];

            gr[i][j] = dr;
            gg[i][j] = dg;
            gb[i][j] = db;

            grd[abs(dr)] += 1;
            grg[abs(dg)] += 1;
            grb[abs(db)] += 1;

            noiser += abs(dr);
            noiseg += abs(dg);
            noiseb += abs(db);
        }
    }
    noiser /= (h * w);
    noiseg /= (h * w);
    noiseb /= (h * w);

    for(int i = 0; i < grd.size(); i ++){
        if(grd[i] > grd[mcir]){
            mcir = i;
        }
        if(grg[i] > grg[mcig]){
            mcig = i;
        }
        if(grb[i] > grb[mcib]){
            mcib = i;
        }
    }
    if(mcir + mcig + mcib <= 4){
        // it's either style 1 or 4
        if(noiser + noiseg + noiseb < 17){
            return 4;
        } else {
            return 1;
        }
    } else {
        if(noiser + noiseg + noiseb > 100){
            return 3;
        } else {
            return 2;
        }
    }
    //return mcir + mcig + mcib;
    //return max(1, min(4, mcir + mcig + mcib +1 ));
    //return noiser + noiseg + noiseb;
}

Compilation message

artclass.cpp: In function 'int style(int, int, int (*)[500], int (*)[500], int (*)[500])':
artclass.cpp:47:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     for(int i = 0; i < grd.size(); i ++){
      |                    ~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 31 ms 4056 KB Output isn't correct
2 Incorrect 46 ms 5056 KB Output isn't correct
3 Correct 40 ms 5020 KB Output is correct
4 Correct 34 ms 5084 KB Output is correct
5 Correct 51 ms 6104 KB Output is correct
6 Correct 34 ms 5264 KB Output is correct
7 Correct 36 ms 5172 KB Output is correct
8 Correct 28 ms 5004 KB Output is correct
9 Incorrect 32 ms 4152 KB Output isn't correct
10 Correct 13 ms 3928 KB Output is correct
11 Incorrect 44 ms 5628 KB Output isn't correct
12 Correct 45 ms 5120 KB Output is correct
13 Incorrect 43 ms 5488 KB Output isn't correct
14 Incorrect 43 ms 5236 KB Output isn't correct
15 Correct 38 ms 4812 KB Output is correct
16 Correct 40 ms 5632 KB Output is correct
17 Correct 40 ms 5596 KB Output is correct
18 Correct 39 ms 5664 KB Output is correct
19 Correct 49 ms 6004 KB Output is correct
20 Correct 39 ms 4684 KB Output is correct
21 Correct 41 ms 5560 KB Output is correct
22 Incorrect 45 ms 5140 KB Output isn't correct
23 Incorrect 43 ms 5580 KB Output isn't correct
24 Correct 23 ms 4620 KB Output is correct
25 Incorrect 39 ms 4900 KB Output isn't correct
26 Correct 11 ms 1492 KB Output is correct
27 Incorrect 38 ms 4680 KB Output isn't correct
28 Correct 26 ms 3440 KB Output is correct
29 Correct 31 ms 5008 KB Output is correct
30 Incorrect 45 ms 5572 KB Output isn't correct
31 Incorrect 59 ms 5324 KB Output isn't correct
32 Correct 27 ms 3220 KB Output is correct
33 Incorrect 41 ms 4864 KB Output isn't correct
34 Correct 29 ms 4968 KB Output is correct
35 Correct 51 ms 5888 KB Output is correct
36 Correct 21 ms 2636 KB Output is correct
37 Incorrect 42 ms 4812 KB Output isn't correct
38 Correct 47 ms 5156 KB Output is correct
39 Correct 41 ms 5600 KB Output is correct
40 Correct 43 ms 5428 KB Output is correct
41 Correct 41 ms 5156 KB Output is correct
42 Correct 49 ms 6124 KB Output is correct
43 Correct 48 ms 6048 KB Output is correct
44 Correct 26 ms 3268 KB Output is correct
45 Incorrect 55 ms 4940 KB Output isn't correct
46 Incorrect 21 ms 2684 KB Output isn't correct
47 Correct 44 ms 5384 KB Output is correct
48 Correct 25 ms 2704 KB Output is correct
49 Incorrect 48 ms 6048 KB Output isn't correct
50 Correct 50 ms 6192 KB Output is correct
51 Correct 42 ms 5740 KB Output is correct
52 Correct 35 ms 5068 KB Output is correct
53 Incorrect 39 ms 5580 KB Output isn't correct
54 Correct 47 ms 6088 KB Output is correct
55 Incorrect 43 ms 5112 KB Output isn't correct
56 Correct 49 ms 6092 KB Output is correct
57 Incorrect 39 ms 4768 KB Output isn't correct
58 Incorrect 42 ms 5372 KB Output isn't correct
59 Correct 48 ms 5708 KB Output is correct
60 Incorrect 33 ms 5192 KB Output isn't correct
61 Correct 41 ms 5300 KB Output is correct
62 Correct 42 ms 5076 KB Output is correct
63 Correct 27 ms 4868 KB Output is correct
64 Incorrect 43 ms 5656 KB Output isn't correct
65 Correct 45 ms 5700 KB Output is correct
66 Incorrect 35 ms 5196 KB Output isn't correct
67 Correct 49 ms 6140 KB Output is correct
68 Incorrect 32 ms 3848 KB Output isn't correct
69 Correct 48 ms 5768 KB Output is correct
70 Correct 46 ms 5772 KB Output is correct
71 Incorrect 35 ms 4044 KB Output isn't correct
72 Correct 40 ms 5104 KB Output is correct
73 Incorrect 39 ms 4556 KB Output isn't correct
74 Correct 28 ms 4988 KB Output is correct
75 Incorrect 41 ms 5684 KB Output isn't correct
76 Correct 40 ms 5492 KB Output is correct
77 Incorrect 41 ms 5640 KB Output isn't correct
78 Correct 48 ms 6136 KB Output is correct
79 Incorrect 46 ms 4664 KB Output isn't correct
80 Correct 73 ms 6140 KB Output is correct
81 Incorrect 49 ms 5504 KB Output isn't correct
82 Correct 39 ms 5464 KB Output is correct
83 Incorrect 35 ms 4792 KB Output isn't correct
84 Correct 39 ms 5648 KB Output is correct
85 Correct 48 ms 6092 KB Output is correct
86 Correct 43 ms 5716 KB Output is correct
87 Correct 31 ms 5148 KB Output is correct
88 Correct 47 ms 3928 KB Output is correct
89 Correct 38 ms 5220 KB Output is correct
90 Incorrect 56 ms 5276 KB Output isn't correct
91 Incorrect 40 ms 5096 KB Output isn't correct
92 Incorrect 51 ms 6132 KB Output isn't correct
93 Correct 45 ms 5996 KB Output is correct
94 Correct 42 ms 5636 KB Output is correct
95 Correct 46 ms 5936 KB Output is correct
96 Incorrect 42 ms 5036 KB Output isn't correct
97 Correct 40 ms 5616 KB Output is correct
98 Correct 26 ms 3540 KB Output is correct
99 Correct 48 ms 6148 KB Output is correct
100 Correct 44 ms 5756 KB Output is correct
101 Incorrect 37 ms 4588 KB Output isn't correct
102 Correct 25 ms 3200 KB Output is correct