# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
383512 | ParsaAlizadeh | 미술 수업 (IOI13_artclass) | C++17 | 79 ms | 3308 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "artclass.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii;
#define all(x) x.begin(), x.end()
#define kill(x) return cout << x << endl, 0
#define X first
#define Y second
#define endl '\n'
#define debug(x) #x << " : " << x << " / "
constexpr ll pw(ll a, ll b, ll mod) {
return (!b ? 1 :
b & 1 ? a * pw(a * a % mod, b / 2, mod) % mod :
pw(a * a % mod, b / 2, mod));
}
constexpr int N = 1e5 + 10;
struct HSV {
double h, s, v;
HSV(double r, double g, double b) {
r /= 255; g /= 255; b /= 255;
double cmax = max({r, g, b}), cmin = min({r ,g, b}), d = cmax - cmin;
v = cmax * 100;
h = (
cmax == cmin ? 0 :
cmax == r ? (double) 60 * fmod((g - b) / d, 6) :
cmax == g ? (double) 60 * ((b - r) / d + 2) :
(double) 60 * ((r - g) / d + 4)
);
s = (
cmax == 0 ? 0 :
d * 100 / cmax
);
}
};
double twh, tgr, tbl, trd;
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
for (int i = 0; i < H; i++) {
for (int j = 0; j < W; j++) {
HSV cur = {R[i][j], G[i][j], B[i][j]};
if (35 <= cur.h && cur.h <= 200 && cur.s >= 40 && cur.v >= 40)
tgr++;
if ((cur.h <= 25 || 340 <= cur.h) && cur.s >= 30 && cur.v >= 30)
trd++;
if (cur.v <= 20)
tbl++;
if (cur.v >= 40 && cur.s <= 20)
twh++;
}
}
twh = twh * 100 / W / H;
tgr = tgr * 100 / W / H;
tbl = tbl * 100 / W / H;
trd = trd * 100 / W / H;
if (trd >= 18)
return 4;
if (tgr >= 24)
return 2;
return 3;
/*
if (trd >= 19)
return 4;
if (tgr >= 40)
return 2;
if (tbl >= 21)
return 3;
return 1;
*/
cout << setprecision(2) << fixed;
cout << debug(tgr) << debug(trd) << debug(tbl) << debug(twh) << endl;
return 1;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |