Submission #396450

#TimeUsernameProblemLanguageResultExecution timeMemory
396450Kenzo_1114Art Class (IOI13_artclass)C++17
89 / 100
85 ms3268 KiB
#include<bits/stdc++.h>
#include"artclass.h"
using namespace std;
const int MAXN = 500;
const int MAXC = 260;

int cnt(int H, int W, int R[500][500], int G[500][500], int B[500][500], int val)
{
	int T = 0;

	for(int i = 0; i < H; i++)
		for(int j = 0; j < W; j++)
		{
			int r = R[i][j];
			int g = G[i][j];
			int b = B[i][j];

			if(j)
			{
				int r2 = R[i][j - 1];
				int g2 = G[i][j - 1];
				int b2 = B[i][j - 1];

				if(abs(r - r2) + abs(g - g2) + abs(b - b2) <= val)	continue;
			}

			if(i)
			{
				int r2 = R[i - 1][j];
				int g2 = G[i - 1][j];
				int b2 = B[i - 1][j];

				if(abs(r - r2) + abs(g - g2) + abs(b - b2) <= val)	continue;
			}

			++T;
		}

	return T;
}

int style(int H, int W, int R[500][500], int G[500][500], int B[500][500])
{
	int white = 0;
	for(int i = 0; i < H; i++)
		for(int j = 0; j < W; j++)
		{
			int r = R[i][j];
			int g = G[i][j];
			int b = B[i][j];

			if(r + g + b >= 720) white++;	
		}

	if((double) 100 * cnt(H, W, R, G, B, 130) / (H * W) >= (double) 2)	return 3;
	if((double) 100 * white / (H * W) >= (double) 0.2)	return 1;
	if((double) 100 * cnt(H, W, R, G, B, 25) / (H * W) <= (double) 5)	return 4;

	return 2;
}
#Verdict Execution timeMemoryGrader output
Fetching results...