제출 #716038

#제출 시각아이디문제언어결과실행 시간메모리
716038Nonoze미술 수업 (IOI13_artclass)C++14
91 / 100
72 ms3268 KiB
#include <bits/stdc++.h>
#include "artclass.h"
using namespace std;
 
int differencesI(int n, int R[500][500], int i, int j) {
	return ((i<n-1)?abs(R[i][j]-R[i+1][j]):0);
}
 
int differencesJ(int n, int R[500][500], int i, int j) {
	return ((j<n-1)?abs(R[i][j]-R[i][j+1]):0);
}
 
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
	int compR=0, compG=0, compB=0;
	double diffR=0, diffG=0, diffB=0;
	for (int i = 0; i < H; ++i)
	{
		for (int j = 0; j < W; ++j)
		{
			compR+=R[i][j];
			diffR+=differencesI(H, R, i, j);
			diffR+=differencesJ(W, R, i, j);
 
			compG+=G[i][j];
			diffG+=differencesI(H, G, i, j);
			diffG+=differencesJ(W, G, i, j);
 
			compB+=B[i][j];
			diffB+=differencesI(H, B, i, j);
			diffB+=differencesJ(W, B, i, j);
		}
	}
	double moyenneR=(double)compR/(H*W), moyenneG=(double)compG/(H*W), moyenneB=(double)compB/(H*W);
	diffR/=H*W, diffG/=H*W, diffB/=H*W;
	//cout << moyenneR << "	" << moyenneG << "	" << moyenneB << endl;
	//cout << diffR << "	" << diffG << "	" << diffB << endl;
	if (diffR<=6.2 || diffG<=6.0 || diffB<=6.1)
	{
		return 4;
	}
	if (diffR>=37.0 || diffG>=36.0 || diffB>=35.0)
	{
		return 3;
	}
	if (moyenneR>=130.0 && moyenneG>=130.0 && moyenneB>=130.0)
	{
		return 1;
	}
	return 2;
}
#Verdict Execution timeMemoryGrader output
Fetching results...