제출 #513604

#제출 시각아이디문제언어결과실행 시간메모리
513604600Mihnea미술 수업 (IOI13_artclass)C++17
96 / 100
90 ms11496 KiB
#include "artclass.h" #include <bits/stdc++.h> using namespace std; /// attention : mean everything /// clustering typedef long double ld; ld getmean(vector<ld> guys) { if (guys.empty()) { return 0; } ld sum = 0; for (auto &x : guys) { sum += x; } sum /= (ld) ((int) guys.size()); return sum; } ld devi(int n, int m, int a[500][500]) { vector<ld> all; for (int i = 1; i + 1 < n; i++) { for (int j = 1; j + 1 < m; j++) { ld sum = 0; sum += a[i - 1][j - 1] + a[i - 1][j] + a[i - 1][j + 1]; sum += a[i][j - 1] + a[i][j] + a[i][j + 1]; sum += a[i + 1][j - 1] + a[i + 1][j] + a[i + 1][j + 1]; all.push_back(abs(a[i][j] - sum / 9)); } } return getmean(all); } vector<ld> rr[5]; vector<ld> gg[5]; vector<ld> bb[5]; ld devi_r[5]; ld devi_g[5]; ld devi_b[5]; bool gen = 0; int step = 0; int style(int n, int m, int r[500][500], int g[500][500], int b[500][500]) { if (gen) { int type = step / 9 + 1; step++; rr[type].push_back(devi(n, m, r)); gg[type].push_back(devi(n, m, g)); bb[type].push_back(devi(n, m, b)); if (step == 4 * 9) { for (int i = 1; i <= 4; i++) { cout << "devi_r[" << i << "] = " << getmean(rr[i]) << ";\n"; cout << "devi_g[" << i << "] = " << getmean(gg[i]) << ";\n"; cout << "devi_b[" << i << "] = " << getmean(bb[i]) << ";\n"; } } } else { devi_r[1] = 3.97219; devi_g[1] = 3.99654; devi_b[1] = 4.11924; devi_r[2] = 6.91017; devi_g[2] = 6.85403; devi_b[2] = 6.68645; devi_r[3] = 19.0843; devi_g[3] = 19.0358; devi_b[3] = 18.7323; devi_r[4] = 1.25593; devi_g[4] = 1.09269; devi_b[4] = 1.22006; ld my_devi_r = devi(n, m, r); ld my_devi_g = devi(n, m, g); ld my_devi_b = devi(n, m, b); ld min_loss = (ld) 1e9; int sol = -1; for (int type = 1; type <= 4; type++) { ld loss = 0; loss += abs(my_devi_r - devi_r[type]); loss += abs(my_devi_g - devi_g[type]); loss += abs(my_devi_b - devi_b[type]); if (loss < min_loss) { min_loss = loss; sol = type; } } assert(sol != -1); assert(1 <= sol && sol <= 4); return sol; } return 777; }
#Verdict Execution timeMemoryGrader output
Fetching results...