# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
56454 | hamzqq9 | 미술 수업 (IOI13_artclass) | C++14 | 151 ms | 6652 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "artclass.h"
#include<bits/stdc++.h>
using namespace std;
double TYPE[4]={27609.340823508253,5590.306744599146,128276.092630415398,473.938244162467};
int R[505][505],G[505][505],B[505][505];
double TotD;
int total;
int w[4][2]={1,0,0,1,-1,0,0,-1};
double sq(int a,int b) {
if(abs(a-b)<=50) return 0;
return abs(1.0*(a-b)*(a-b)*(a-b));
}
double get(int x,int y,int a,int b) {
double DR=sq(R[x][y],R[a][b]);
double DG=sq(G[x][y],G[a][b]);
double DB=sq(B[x][y],B[a][b]);
return (DR+DG+DB)/3.0;
}
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++) {
::R[i][j]=R[i][j];
::G[i][j]=G[i][j];
::B[i][j]=B[i][j];
}
}
for(int i=0;i<H;i++) {
for(int j=0;j<W;j++) {
for(int way=0;way<4;way++) {
int tor=i+w[way][0];
int toc=j+w[way][1];
if(tor>=0 && tor<H && toc>=0 && toc<W) {
total++;
TotD+=get(i,j,tor,toc);
}
}
}
}
double cur=1.0*TotD/total;
double mnD=1000000000;
int whc=-1;
for(int i=0;i<4;i++) {
if(abs(cur-TYPE[i])<mnD) {
mnD=cur-TYPE[i];
whc=i;
}
}
return whc+1;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |