# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
764332 | fatemetmhr | 미술 수업 (IOI13_artclass) | C++17 | 56 ms | 3340 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
// ~ Be Name Khoda ~ //
#include "artclass.h"
#include <bits/stdc++.h>
//#pragma GCC optimize ("O3")
//#pragma GCC target("avx2")
//#pragma GCC optimize("unroll-loops,Ofast")
using namespace std;
typedef long long ll;
typedef long double ld;
#define pb push_back
#define mp make_pair
#define all(x) x.begin(), x.end()
#define fi first
#define se second
const int maxn = 1e6 + 10;
const int maxn5 = 5e5 + 10;
const int maxnt = 1.2e6 + 10;
const int maxn3 = 1e3 + 10;
const int mod = 1e9 + 7;
const ll inf = 1e18;
int cnt[maxn5];
int style(int h, int w, int r[500][500], int g[500][500], int b[500][500]){
ll valr = 256, valg = 256 * 256, valb = 1;
ll sumdiff = 0;
ld avg = 0;
int sefid = 0;
for(int i = 0; i < h; i++) for(int j = 0; j < w; j++){
/*
r[i][j] /= 5; r[i][j] *= 5;
b[i][j] /= 5; b[i][j] *= 5;
g[i][j] /= 5; g[i][j] *= 5;
*/
int brt = r[i][j] + b[i][j] + g[i][j];
if(brt >= 700)
sefid++;
if(g[i][j] + r[i][j] + b[i][j])
avg += ld(g[i][j]) / (g[i][j] + r[i][j] + b[i][j]);
if(i){
ll diff = abs(r[i][j] - r[i - 1][j]) + abs(g[i][j] - g[i - 1][j]) + abs(b[i][j] - b[i - 1][j]);
cnt[diff / 100]++;
sumdiff += diff;
}
if(i + 1 < h){
ll diff = abs(r[i][j] - r[i + 1][j]) + abs(g[i][j] - g[i + 1][j]) + abs(b[i][j] - b[i + 1][j]);
cnt[diff / 100]++;
sumdiff += diff;
}
if(j){
ll diff = abs(r[i][j] - r[i][j - 1]) + abs(g[i][j] - g[i][j - 1]) + abs(b[i][j] - b[i][j - 1]);
cnt[diff / 100]++;
sumdiff += diff;
}
if(j + 1 < w){
ll diff = abs(r[i][j] - r[i][j + 1]) + abs(g[i][j] - g[i][j + 1]) + abs(b[i][j] - b[i][j + 1]);
cnt[diff / 100]++;
sumdiff += diff;
}
}
//cout << sefid << ' ' << ld(sefid) / (h * w) << endl;
//cout << cnt[4] << ' ' << cnt[5] << endl;
/*
for(int i = 0; i < 10; i++)
cout << cnt[i] << ' ';
cout << endl;
*/
sumdiff /= 4 * h * w;
avg /= h * w;
//cout << avg << endl;
//cout << sumdiff << endl;
if(sumdiff < 9)
return 4;
if(sumdiff >= 60 || (sumdiff >= 50 && sefid >= 250))
return 3;
if(cnt[4] >= 1000)
return 1;
if(avg >= 0.4)
return 2;
if(sumdiff <= 24)
return 1;
return 2;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |