Submission #1182138

#TimeUsernameProblemLanguageResultExecution timeMemory
1182138omsincoconutArt Class (IOI13_artclass)C++20
81 / 100
31 ms3316 KiB
#include "artclass.h" #include <bits/stdc++.h> using namespace std; double green_avg(int H, int W, int R[500][500], int G[500][500], int B[500][500]) { long long gs = 0; for (int i = 0; i < H; i++) { for (int j = 0; j < W; j++) { gs += (G[i][j] >= max(R[i][j], B[i][j])); } } return (double)(gs)/(H*W); } double difference_mean(int H, int W, int R[500][500], int G[500][500], int B[500][500]) { long long rs = 0, gs = 0, bs = 0; for (int i = 1; i < H; i++) { for (int j = 1; j < W; j++) { rs += abs(R[i][j] - R[i-1][j]) + abs(R[i][j] - R[i][j-1]); gs += abs(G[i][j] - G[i-1][j]) + abs(G[i][j] - G[i][j-1]); bs += abs(B[i][j] - B[i-1][j]) + abs(B[i][j] - B[i][j-1]); } } return (double)(rs+gs+bs)/(H*W); } double info[5][2] = { {0,0}, {35.27, 11.05}, {63.60, 15.41}, {172.30, 40.79}, {11.46, 2.27} }; int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) { double green = green_avg(H, W, R, G, B); if (green > 0.6) return 2; 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 timeMemoryGrader output
Fetching results...