Submission #935119

# Submission time Handle Problem Language Result Execution time Memory
935119 2024-02-28T17:03:38 Z anton Art Class (IOI13_artclass) C++17
8 / 100
63 ms 6500 KB
#include "artclass.h"
#include<bits/stdc++.h>


using namespace std;
#define ll long long
#define pii pair<int, int>

struct pixel{
    pixel(){

    }
    int r, g, b;
    pixel(int a, int _b, int c){
        r=a;
        g=_b;
        b=c;
    }
    void add(pixel& rh){
        r += rh.r;
        b+=rh.b;
        g+=rh.g;
    }
    void round_pixel(int rond){
        r =(r/rond)*rond;
        g =(g/rond)*rond;
        b =(b/rond)*rond;
    }
    string to_s(){
        string res;
        res.push_back(r);
        res.push_back(g);
        res.push_back(b);
        return res;
    }
};

const int comp = 20;

pixel img[500][500];
pixel img2[50][50];
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {

    unordered_map<string, int> m;
    for(int i = 0; i<H; i++){
        for(int j = 0; j<W; j++){
            img[i][j] = pixel(R[i][j], G[i][j], B[i][j]);
            img[i][j].round_pixel(40);
            img2[i/comp][j/comp].add(img[i][j]);
            //cout<<i/comp<<" "<<j/comp<<endl;
            m[img[i][j].to_s()]++;
        }
    }

    for(int i = 0; i<H/comp; i++){
        for(int j = 0; j<W/comp; j++){
            //cout<<i<<" "<<j<<endl;
            //cout<<img2[i][j].r<<" "<<img2[i][j].g<<" "<<img2[i][j].b<<endl;
            int h_left=  min(comp, H-(i*comp));
            int w_left=  min(comp, W-(j*comp));
            img2[i][j].r/=(h_left*w_left);
            img2[i][j].g/=(h_left*w_left);
            img2[i][j].b/=(h_left*w_left);
            //cout<<img2[i][j].r<<" "<<img2[i][j].g<<" "<<img2[i][j].b<<endl;
        }
    }

    vector<int> v;
    for(auto e: m){
        v.push_back(e.second);
    }

    sort(v.begin(), v.end());
    int mx=0;
    for(int i = 0; i<3; i++){
        mx+= v[v.size()-1-i];
    }

    double percentage = (double)(mx)/(double)(H*W);

    unordered_map<string, int> m2;
    for(int i = 0; i<H/comp; i++){
        for(int j = 0; j<W/comp; j++){
            img2[i][j].round_pixel(50);
            m2[img2[i][j].to_s()]++;
        }
    }

    vector<int> v2;
    for(auto e: m2){
        v2.push_back(e.second);
    }

    sort(v2.begin(), v2.end());
    int mx2=0;
    for(int i = 0; i<1; i++){
        mx2+= v2[v2.size()-1-i];
    }

    double percentage2 = (double)(mx2)/(double)((H/comp)*(W/comp));


    //cout<<v.size()<<endl;

    

    //cout<<percentage<<" "<<percentage2<<endl;


    if(percentage>0.5){
        if(percentage2 >0.4){
            return 4;
        }
        else{
            return 1;
        }
    }
    else{
        if(percentage2 >0.4){
            return 3;
        }
        else{
            return 2;
        }
    }
    
    /*ll s= 0.;
    for(int j = 0; j<W; j++){
        for(int i = 0; i<H-1; i++){
           s+=(R[j][i+1]-R[j][i])*(R[j][i+1]-R[j][i]) + (G[j][i+1]-G[j][i])*(G[j][i+1]-G[j][i]) + (B[j][i+1]-B[j][i])*(B[j][i+1]-B[j][i]);
        }
    }

    double avg = (double)(s)/((double)((H-1)*W));

    cout<<avg<<endl;*/
}
# Verdict Execution time Memory Grader output
1 Incorrect 32 ms 4952 KB Output isn't correct
2 Incorrect 49 ms 6232 KB Output isn't correct
3 Incorrect 35 ms 6168 KB Output isn't correct
4 Incorrect 48 ms 6220 KB Output isn't correct
5 Incorrect 31 ms 5200 KB Output isn't correct
6 Incorrect 38 ms 5456 KB Output isn't correct
7 Incorrect 31 ms 6304 KB Output isn't correct
8 Incorrect 40 ms 6244 KB Output isn't correct
9 Incorrect 37 ms 6236 KB Output isn't correct
10 Incorrect 46 ms 6224 KB Output isn't correct
11 Correct 40 ms 5712 KB Output is correct
12 Incorrect 46 ms 6224 KB Output isn't correct
13 Incorrect 52 ms 6224 KB Output isn't correct
14 Correct 40 ms 5748 KB Output is correct
15 Correct 27 ms 6236 KB Output is correct
16 Correct 34 ms 5224 KB Output is correct
17 Incorrect 32 ms 6232 KB Output isn't correct
18 Correct 40 ms 6240 KB Output is correct
19 Incorrect 21 ms 4700 KB Output isn't correct
20 Correct 37 ms 6132 KB Output is correct
21 Correct 30 ms 6248 KB Output is correct
22 Correct 46 ms 6220 KB Output is correct
23 Incorrect 40 ms 5452 KB Output isn't correct
24 Incorrect 39 ms 5452 KB Output isn't correct
25 Incorrect 42 ms 6220 KB Output isn't correct
26 Correct 41 ms 5708 KB Output is correct
27 Incorrect 38 ms 5708 KB Output isn't correct
28 Incorrect 35 ms 6224 KB Output isn't correct
29 Correct 41 ms 6240 KB Output is correct
30 Incorrect 42 ms 5712 KB Output isn't correct
31 Incorrect 37 ms 6224 KB Output isn't correct
32 Incorrect 27 ms 4700 KB Output isn't correct
33 Incorrect 38 ms 6236 KB Output isn't correct
34 Correct 22 ms 4712 KB Output is correct
35 Incorrect 41 ms 6224 KB Output isn't correct
36 Incorrect 25 ms 4700 KB Output isn't correct
37 Correct 42 ms 5712 KB Output is correct
38 Incorrect 37 ms 5456 KB Output isn't correct
39 Correct 49 ms 6236 KB Output is correct
40 Correct 26 ms 4956 KB Output is correct
41 Incorrect 34 ms 6140 KB Output isn't correct
42 Correct 38 ms 6244 KB Output is correct
43 Correct 45 ms 6220 KB Output is correct
44 Incorrect 38 ms 5716 KB Output isn't correct
45 Incorrect 39 ms 6224 KB Output isn't correct
46 Correct 49 ms 6220 KB Output is correct
47 Incorrect 39 ms 5456 KB Output isn't correct
48 Correct 43 ms 5712 KB Output is correct
49 Incorrect 42 ms 5964 KB Output isn't correct
50 Correct 36 ms 6224 KB Output is correct
51 Incorrect 37 ms 6236 KB Output isn't correct
52 Incorrect 48 ms 6236 KB Output isn't correct
53 Correct 40 ms 6244 KB Output is correct
54 Correct 43 ms 6236 KB Output is correct
55 Incorrect 36 ms 5456 KB Output isn't correct
56 Incorrect 32 ms 6484 KB Output isn't correct
57 Correct 29 ms 4956 KB Output is correct
58 Correct 41 ms 5728 KB Output is correct
59 Incorrect 41 ms 6500 KB Output isn't correct
60 Correct 30 ms 5256 KB Output is correct
61 Incorrect 45 ms 6224 KB Output isn't correct
62 Correct 46 ms 6220 KB Output is correct
63 Correct 36 ms 5460 KB Output is correct
64 Correct 38 ms 5492 KB Output is correct
65 Correct 31 ms 6224 KB Output is correct
66 Correct 47 ms 6228 KB Output is correct
67 Correct 41 ms 6220 KB Output is correct
68 Incorrect 28 ms 6224 KB Output isn't correct
69 Incorrect 40 ms 6236 KB Output isn't correct
70 Incorrect 40 ms 6248 KB Output isn't correct
71 Correct 42 ms 5980 KB Output is correct
72 Incorrect 43 ms 6480 KB Output isn't correct
73 Incorrect 35 ms 5460 KB Output isn't correct
74 Correct 21 ms 4696 KB Output is correct
75 Correct 37 ms 6224 KB Output is correct
76 Correct 38 ms 6220 KB Output is correct
77 Incorrect 38 ms 6152 KB Output isn't correct
78 Correct 38 ms 6228 KB Output is correct
79 Incorrect 48 ms 6484 KB Output isn't correct
80 Correct 38 ms 5708 KB Output is correct
81 Incorrect 30 ms 6248 KB Output isn't correct
82 Incorrect 43 ms 5972 KB Output isn't correct
83 Incorrect 63 ms 5472 KB Output isn't correct
84 Correct 39 ms 5712 KB Output is correct
85 Correct 34 ms 4944 KB Output is correct
86 Correct 35 ms 5352 KB Output is correct
87 Incorrect 29 ms 6224 KB Output isn't correct
88 Correct 12 ms 5980 KB Output is correct
89 Incorrect 35 ms 6244 KB Output isn't correct
90 Correct 42 ms 5980 KB Output is correct
91 Correct 39 ms 6220 KB Output is correct
92 Incorrect 39 ms 5712 KB Output isn't correct
93 Incorrect 48 ms 6236 KB Output isn't correct
94 Correct 41 ms 5712 KB Output is correct
95 Incorrect 37 ms 6224 KB Output isn't correct
96 Incorrect 37 ms 5456 KB Output isn't correct
97 Correct 30 ms 6248 KB Output is correct
98 Incorrect 32 ms 6220 KB Output isn't correct
99 Correct 13 ms 4700 KB Output is correct
100 Incorrect 27 ms 4700 KB Output isn't correct
101 Incorrect 33 ms 6236 KB Output isn't correct
102 Correct 48 ms 6224 KB Output is correct