제출 #140089

#제출 시각아이디문제언어결과실행 시간메모리
140089cfalasArt Class (IOI13_artclass)C++14
12 / 100
84 ms3448 KiB
#include<bits/stdc++.h>
using namespace std;
#include "artclass.h"
typedef pair<int, int> ii;
typedef pair<int, ii> iii;

int style(int h, int w, int r[500][500], int g[500][500], int b[500][500]) {
	double tot = 0;
	double totr=0, totg=0, totb=0;
	set<iii> colors;
	int dr=0, dg=0, db=0;
	int light = 0, dark = 0;
	for(int i=3;i<h;i++){
		for(int j=0;j<w;j++){
			tot+=r[i][j]+g[i][j]+b[i][j];
			totr+=r[i][j];
			totg+=g[i][j];
			totb+=b[i][j];
			colors.insert(iii(r[i][j]/64, ii(g[i][j]/64, b[i][j]/64)));
			if(r[i][j]>g[i][j] && r[i][j]>b[i][j]) dr++;
			if(g[i][j]>b[i][j] && g[i][j]>r[i][j]) dg++;
			if(b[i][j]>r[i][j] && b[i][j]>g[i][j]) db++;
			if(r[i][j] + g[i][j] + b[i][j] < 50) dark++;
			else if(r[i][j] + g[i][j] + b[i][j] > 300) light++;
		}
	}
	if(colors.size()<=20 || dr>(dg+db)*30) return 4;
	if(dr+dg>db*8 && totr+totg > 3*totb) return 2;
	if(dark+light*2 > w*h) return 3;
	//if(totg > totb && totb<totr) return 2;
	return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...