제출 #668065

#제출 시각아이디문제언어결과실행 시간메모리
668065QwertyPi미술 수업 (IOI13_artclass)C++14
100 / 100
57 ms6084 KiB
#include "artclass.h"
 
#include <bits/stdc++.h>
 
using namespace std;
 
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
	long double a1 = 0;
	for(int i = 0; i < H; i++){
		for(int j = 0; j < W; j++){
			a1 += R[i][j] + G[i][j] + B[i][j];
		}
	}
	a1 /= H * W;
	
	long double a2 = 0;
	for(int i = 0; i < H; i++){
		for(int j = 0; j < W - 1; j++){
			a2 += abs(R[i][j] - R[i][j + 1]) + abs(G[i][j] - G[i][j + 1]) + abs(B[i][j] - B[i][j + 1]);
		}
	}
	for(int i = 0; i < H - 1; i++){
		for(int j = 0; j < W; j++){
			a2 += abs(R[i + 1][j] - R[i][j]) + abs(G[i + 1][j] - G[i][j]) + abs(B[i + 1][j] - B[i][j]);
		}
	}
	a2 /= H * (W - 1) + W * (H - 1);
	
	long double a3 = 0;
	for(int i = 0; i < H; i++){
		for(int j = 0; j < W; j++){
			a3 += G[i][j] ? (long double) G[i][j] / (R[i][j] + G[i][j] + B[i][j]) : 0;
		}
	}
	a3 /= H * W;
	
	long double a4 = 0;
	for(int i = 0; i < H; i++){
		for(int j = 0; j < W; j++){
			a4 += R[i][j] + G[i][j] + B[i][j] > 600;
		}
	}
	a4 /= H * W;
	
	long double a5 = 0;
	for(int i = 0; i < H; i++){
		for(int j = 0; j < W; j++){
			a5 += R[i][j] + G[i][j] + B[i][j] < 200;
		}
	}
	a5 /= H * W;
	
	if(a2 < 9){
		return 4;
	}
	if(a2 < 15 && a4 < 0.2){
		return 4;
	}
	if(a2 > 70){
		return 3;
	}
	if(a3 > 0.38){
		return 2;
	}
	if(a1 < 350 && a4 < 0.15 && a5 > 0.2){
		return 2;
	}
	if(a2 < 40){
		return 1;
	}else{
		return 3;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...