Submission #469580

#TimeUsernameProblemLanguageResultExecution timeMemory
469580alextodoranArt Class (IOI13_artclass)C++17
80 / 100
86 ms6068 KiB
/** ____ ____ ____ ____ ____ ||a |||t |||o |||d |||o || ||__|||__|||__|||__|||__|| |/__\|/__\|/__\|/__\|/__\| **/ #include <bits/stdc++.h> #include "artclass.h" using namespace std; typedef long long ll; const int HW_MAX = 500; ll sq (ll a) { if(a < 0) return -sqrt(-a); return sqrt(a); } int getMess (int H, int W, int R[HW_MAX][HW_MAX], int G[HW_MAX][HW_MAX], int B[HW_MAX][HW_MAX]) { ll res = 0; for(int i = 0; i < H; i++) for(int j = 0; j < W; j++) { if(i > 0) { ll val = 0; val += abs(R[i][j] - R[i - 1][j]); val += abs(G[i][j] - G[i - 1][j]); val += abs(B[i][j] - B[i - 1][j]); res += val * val; } if(j > 0) { ll val = 0; val += abs(R[i][j] - R[i][j - 1]); val += abs(G[i][j] - G[i][j - 1]); val += abs(B[i][j] - B[i][j - 1]); res += val * val; } } res = sq(res) * 1000; res /= (H * W); return res; } int getWhite (int H, int W, int R[HW_MAX][HW_MAX], int G[HW_MAX][HW_MAX], int B[HW_MAX][HW_MAX]) { ll res = 0; for(int i = 0; i < H; i++) for(int j = 0; j < W; j++) { int mx = max({R[i][j], G[i][j], B[i][j]}); int mn = min({R[i][j], G[i][j], B[i][j]}); if(mx - mn < 30 && (mx > 220 || mn < 10)) res += 10000; } res /= (H * W); return res; } int style (int H, int W, int R[HW_MAX][HW_MAX], int G[HW_MAX][HW_MAX], int B[HW_MAX][HW_MAX]) { int mess = getMess(H, W, R, G, B); int white = getWhite(H, W, R, G, B); if(mess > 220) return 3; if(white > 3000) return 1; if(mess < 100) return 4; return 2; }
#Verdict Execution timeMemoryGrader output
Fetching results...