#include "artclass.h"
#include <bits/stdc++.h>
using namespace std;
double takepw(double x) {return pow(x, 0.5);}
double difference_mean(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
double sum = 0;
for (int i = 1; i < H; i++) {
for (int j = 1; j < W; j++) {
sum += takepw(0.299*abs(R[i][j]-R[i-1][j]) + 0.587*abs(G[i][j]-G[i-1][j]) + 0.114*abs(B[i][j]-B[i-1][j]));
sum += takepw(0.299*abs(R[i][j]-R[i][j-1]) + 0.587*abs(G[i][j]-G[i][j-1]) + 0.114*abs(B[i][j]-B[i][j-1]));
}
}
return sum/(H*W);
}
double info[5][2] = {
{0,0},
{3.464, 0.929},
{5.773, 0.956},
{9.450, 1.435},
{2.169, 0.546}
};
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
double df = difference_mean(H, W, R, G, B);
double cv = 1e9;
int ret = 0;
for (int i = 1; i <= 4; i++) {
double v = (double)abs(df-info[i][0])/info[i][1];
if (v < cv) {
cv = v;
ret = i;
}
}
return ret;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |