# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
426558 | Aldas25 | 미술 수업 (IOI13_artclass) | C++14 | 88 ms | 7152 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "artclass.h"
#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i = (a); i <= (b); i++)
#define REP(n) FOR(O, 1, (n))
#define f first
#define s second
#define pb push_back
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<pii> vii;
typedef long long ll;
typedef vector<ll> vl;
typedef long double ld;
int id (int i, int j) {
return i * 510 + j;
}
int par[520*520], sz[520*520];
int find (int a) {return par[a] = par[a]==a ? a : find(par[a]);}
bool same (int a, int b) {return find(a) == find(b);}
void unite (int a, int b) {
a = find(a); b = find(b);
if (a == b) return;
par[b] = a;
sz[a] += sz[b];
}
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
ll sumR = 0, sumG = 0, sumB = 0;
FOR(i, 0, H-1) FOR(j, 0, W-1) {
sumR += R[i][j];
sumG += G[i][j];
sumB += B[i][j];
par[id(i,j)] = id(i,j);
sz[id(i,j)] = 1;
}
//cout << " sumR = " << sumR << " sumG = " << sumG << " sumB = " << sumB << endl;
ll area = ((ll)H)*((ll)W);
ld avR = ((ld)sumR) / ((ld)area);
ld avG = ((ld)sumG) / ((ld)area);
ld avB = ((ld)sumB) / ((ld)area);
//cout << fixed << setprecision(3) << " avR = " << avR << " avG = " << avG << " avB = " << avB << endl;
int ans = 1;
if (avB < min(avR, avG) - 25.0) ans =2;
else {
if (max(avR, avG) < 150.0) ans = 4;
}
//cout << " ans = " << ans << endl;
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |