Submission #1313794

#TimeUsernameProblemLanguageResultExecution timeMemory
1313794kawhiet미술 수업 (IOI13_artclass)C++20
87 / 100
32 ms6280 KiB
#include <bits/stdc++.h> #include "artclass.h" using namespace std; int n, m; vector<vector<int>> r, g, b; double get(double tot, double cnt) { return 100.0 / tot * cnt; } bool field() { int bad = 0; for (int i = 0; i < n; i++) { int cnt = 1, mx = 1; for (int j = 1; j < m; j++) { int d1 = abs(r[i][j] - r[i][j - 1]); int d2 = abs(g[i][j] - g[i][j - 1]); int d3 = abs(b[i][j] - b[i][j - 1]); if (max({d1, d2, d2}) > 30) { cnt = 1; } else { cnt++; } mx = max(mx, cnt); } if (get(m, mx) < 40) { i++; bad++; } } cerr << bad << ' '; return bad <= 40; } bool action() { return false; } int landscape() { int cnt = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { int x = r[i][j], y = g[i][j], z = b[i][j]; if (z == min({x, y, z}) && double(y) / double(z) >= 1.5) { cnt++; } } } double p = 100.0 / double(n * m) * double(cnt); return p >= 40; } bool modern() { int cnt = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { int x = r[i][j], y = b[i][j], z = g[i][j]; if (min({x, y, z}) >= 180) { cnt++; } } } double p = get(n * m, cnt); return p >= 20; } int style(int _n, int _m, int _r[500][500], int _g[500][500], int _b[500][500]) { n = _n; m = _m; r.assign(n, vector<int>(m, 0)); b.assign(n, vector<int>(m, 0)); g.assign(n, vector<int>(m, 0)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { r[i][j] = _r[i][j]; g[i][j] = _g[i][j]; b[i][j] = _b[i][j]; } } if (modern()) return 1; if (field()) return 4; if (landscape()) return 2; return 3; }
#Verdict Execution timeMemoryGrader output
Fetching results...