# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
762219 | SanguineChameleon | 미술 수업 (IOI13_artclass) | C++17 | 57 ms | 3264 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "artclass.h"
#include <bits/stdc++.h>
using namespace std;
const int BLOCK_CNT = 3;
const int BLOCK_SIZE = (255 / BLOCK_CNT) + 1;
int A[BLOCK_CNT][BLOCK_CNT][BLOCK_CNT];
vector<int> E = {277781,21755,5642,1243,7103,29598,0,0,47,45511,5571,22432,12543,46584,14942,6,2778,15977,202871,156,0,47556,10098,1862,149871,29218,1112355,653435,464,0,110221,20556,0,0,0,0,123792,447,0,412625,144906,3337,440,11732,4890,137,0,0,35958,48481,1846,4527,85318,93888,300949,10969,0,8564,4670,0,0,0,0,45010,8763,0,92082,330763,1698,1,5000,3099,2529,159,0,35326,73964,1159,6626,133980,268189,265078,36792,0,3074,100922,2396,0,0,0,180131,83,0,16661,19261,902,0,3,16,290694,35,0,266220,62791,1080,118370,34327,74164,};
int style(int N, int M, int R[500][500], int G[500][500], int B[500][500]) {
for (int r = 0; r < BLOCK_CNT; r++) {
for (int g = 0; g < BLOCK_CNT; g++) {
for (int b = 0; b < BLOCK_CNT; b++) {
A[r][g][b] = 1;
}
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
A[R[i][j] / BLOCK_SIZE][G[i][j] / BLOCK_SIZE][B[i][j] / BLOCK_SIZE]++;
}
}
pair<long double, int> res = make_pair(1e18L, -1);
for (int X = 0; X < 4; X++) {
long double score = 0.0L;
int totA = 0;
int totE = 0;
for (int r = 0; r < BLOCK_CNT; r++) {
for (int g = 0; g < BLOCK_CNT; g++) {
for (int b = 0; b < BLOCK_CNT; b++) {
totA += A[r][g][b];
totE += E[X * BLOCK_CNT * BLOCK_CNT * BLOCK_CNT + r * BLOCK_CNT * BLOCK_CNT + g * BLOCK_CNT + b] + 1;
}
}
}
for (int r = 0; r < BLOCK_CNT; r++) {
for (int g = 0; g < BLOCK_CNT; g++) {
for (int b = 0; b < BLOCK_CNT; b++) {
long double exp = 1.0L * (E[X * BLOCK_CNT * BLOCK_CNT * BLOCK_CNT + r * BLOCK_CNT * BLOCK_CNT + g * BLOCK_CNT + b] + 1) / totE * totA;
score += (exp - A[r][g][b]) * (exp - A[r][g][b]) / exp;
}
}
}
res = min(res, make_pair(score, X + 1));
}
return res.second;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |