Submission #1216551

#TimeUsernameProblemLanguageResultExecution timeMemory
1216551wazj2024미술 수업 (IOI13_artclass)C++20
12 / 100
31 ms3336 KiB
#include "artclass.h"
#include <cmath>
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
    long long sumR = 0, sumG = 0, sumB = 0;
    long long sumR2 = 0, sumG2 = 0, sumB2 = 0;
    long long sumRG = 0, sumRB = 0, sumGB = 0;
    for (int i = 0; i < H; ++i) {
        for (int j = 0; j < W; ++j) {
            int r = R[i][j], g = G[i][j], b = B[i][j];
            sumR += r; sumG += g; sumB += b;
            sumR2 += r * r; sumG2 += g * g; sumB2 += b * b;
            sumRG += abs(r - g);
            sumRB += abs(r - b);
            sumGB += abs(g - b);
        }
    }
    int pixels = H * W;
    double avgR = sumR / (double)pixels;
    double avgG = sumG / (double)pixels;
    double avgB = sumB / (double)pixels;
    double stdR = sqrt(sumR2 / (double)pixels - avgR * avgR);
    double stdG = sqrt(sumG2 / (double)pixels - avgG * avgG);
    double stdB = sqrt(sumB2 / (double)pixels - avgB * avgB);
    double avgRG = sumRG / (double)pixels;
    double avgRB = sumRB / (double)pixels;
    double avgGB = sumGB / (double)pixels;
    if ((stdR + stdG + stdB) / 3 < 40 && (avgRB > 100 || avgRG > 70)) return 4;
    if (avgR > 170 && avgR > avgG && avgR > avgB) return 1;
    if (avgG > avgR && avgG > avgB && stdG < 60) return 2;
    return 3;
}
#Verdict Execution timeMemoryGrader output
Fetching results...