#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 time | Memory | Grader output |
---|
Fetching results... |