Submission #765343

# Submission time Handle Problem Language Result Execution time Memory
765343 2023-06-24T11:09:48 Z Sohsoh84 Art Class (IOI13_artclass) C++17
65 / 100
69 ms 12608 KB
#include "artclass.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<ll, ll> pll;
typedef long double ld;

#define X		first
#define Y		second
#define sep		' '
#define debug(x)	cerr << #x << ": " << x << endl;

const ll MAXN = 500;
const ld GRTRFACTOR = 0.6;
const ld difflim = 200;

int n, m, A[MAXN][MAXN][3];
vector<pll> adj[MAXN][MAXN];

inline ld dist(int a, int b, int x, int y) {
	ld ans = 0;
	for (int i = 0; i < 3; i++)
		ans += pow(abs(A[a][b][i] - A[x][y][i]), 1);
	
	return ans;
}

inline int wow() {
	int ans = 0;
	for (int i = 0; i < n / 20; i++) {
		for (int j = 0; j < m / 20; j++) {
			bool flag = true;
			for (int a = 0; a < 20; a++) {
				for (int b = 0; b < 20; b++) {
					if (dist(i, j, i + a, j + b) > difflim)
						flag = false;
				}
			}

			ans += flag;
		}
	}

	return ans;
}

int lim;
double test = 0.6;

inline int horz_khat() {
	int fans = 0;
	for (int i = lim; i < n; i++) {
		int ans = 0;
		for (int j = 0; j < m; j++)
			if (dist(i, j, i - lim, j) > difflim)
				ans++;
		
		if (ans > test * m) fans++;
	}

	return fans;	
}

inline int vert_khat() {
	int fans = 0;
	for (int i = lim; i < m; i++) {
		int ans = 0;
		for (int j = 0; j < n; j++)
			if (dist(j, i, j, i - lim) > difflim)
				ans++;
		
		if (ans > test * n) fans++;
	}
	
	return fans;
}

inline ld green_sum() {
	ld s = 0;
	for (int i = 0; i < n; i++)
		for (int j = 0; j < m; j++)
			s = s + A[i][j][1] - A[i][j][0] - A[i][j][2];

	s /= (n * m);
	return s;
}

int style(int H_, int W_, int R_[500][500], int G_[500][500], int B_[500][500]) {
	n = H_;
	m = W_;	
	lim = (n + m) / 30;
	for (int i = 0; i < n; i++)
		for (int j = 0; j < m; j++)
			A[i][j][0] = R_[i][j], A[i][j][1] = G_[i][j], A[i][j][2] = B_[i][j];

	if (vert_khat() > 10 && vert_khat() > 10) return 1;	
	if (vert_khat() + horz_khat() <= 2 && green_sum() > -100) return 2;
	cerr << vert_khat() << sep << horz_khat() << endl;
	if (max(vert_khat(), horz_khat()) > 2 && min(vert_khat(), horz_khat()) < 2) return 4;
	return 3;
}
# Verdict Execution time Memory Grader output
1 Incorrect 30 ms 12020 KB Output isn't correct
2 Correct 36 ms 9136 KB Output is correct
3 Correct 56 ms 11952 KB Output is correct
4 Incorrect 47 ms 11244 KB Output isn't correct
5 Correct 36 ms 12032 KB Output is correct
6 Incorrect 45 ms 12408 KB Output isn't correct
7 Incorrect 51 ms 12068 KB Output isn't correct
8 Incorrect 13 ms 7284 KB Output isn't correct
9 Correct 39 ms 11140 KB Output is correct
10 Correct 39 ms 11084 KB Output is correct
11 Incorrect 23 ms 8660 KB Output isn't correct
12 Correct 40 ms 11984 KB Output is correct
13 Correct 38 ms 10748 KB Output is correct
14 Correct 49 ms 10956 KB Output is correct
15 Correct 48 ms 12108 KB Output is correct
16 Correct 48 ms 12388 KB Output is correct
17 Correct 43 ms 12160 KB Output is correct
18 Correct 38 ms 10196 KB Output is correct
19 Correct 47 ms 12364 KB Output is correct
20 Correct 38 ms 11988 KB Output is correct
21 Correct 27 ms 9036 KB Output is correct
22 Correct 31 ms 12044 KB Output is correct
23 Incorrect 46 ms 11596 KB Output isn't correct
24 Correct 53 ms 10760 KB Output is correct
25 Correct 50 ms 11064 KB Output is correct
26 Correct 42 ms 11980 KB Output is correct
27 Correct 26 ms 12004 KB Output is correct
28 Correct 36 ms 12020 KB Output is correct
29 Incorrect 41 ms 11936 KB Output isn't correct
30 Correct 40 ms 12044 KB Output is correct
31 Correct 56 ms 11560 KB Output is correct
32 Incorrect 18 ms 11792 KB Output isn't correct
33 Correct 38 ms 10688 KB Output is correct
34 Correct 42 ms 12152 KB Output is correct
35 Correct 38 ms 10364 KB Output is correct
36 Correct 36 ms 11968 KB Output is correct
37 Correct 45 ms 10540 KB Output is correct
38 Correct 49 ms 12176 KB Output is correct
39 Correct 38 ms 10424 KB Output is correct
40 Correct 43 ms 12000 KB Output is correct
41 Correct 46 ms 11300 KB Output is correct
42 Correct 45 ms 12396 KB Output is correct
43 Incorrect 27 ms 9144 KB Output isn't correct
44 Correct 45 ms 12092 KB Output is correct
45 Correct 36 ms 12124 KB Output is correct
46 Correct 41 ms 12236 KB Output is correct
47 Correct 50 ms 11192 KB Output is correct
48 Correct 44 ms 12108 KB Output is correct
49 Incorrect 35 ms 11932 KB Output isn't correct
50 Correct 26 ms 9276 KB Output is correct
51 Incorrect 50 ms 12272 KB Output isn't correct
52 Correct 39 ms 12224 KB Output is correct
53 Correct 45 ms 11916 KB Output is correct
54 Incorrect 59 ms 11908 KB Output isn't correct
55 Correct 52 ms 12104 KB Output is correct
56 Correct 38 ms 10836 KB Output is correct
57 Correct 44 ms 11944 KB Output is correct
58 Incorrect 20 ms 8468 KB Output isn't correct
59 Correct 43 ms 11980 KB Output is correct
60 Correct 45 ms 12032 KB Output is correct
61 Correct 37 ms 10728 KB Output is correct
62 Correct 45 ms 11984 KB Output is correct
63 Correct 45 ms 12236 KB Output is correct
64 Correct 32 ms 11976 KB Output is correct
65 Incorrect 45 ms 11408 KB Output isn't correct
66 Correct 43 ms 11976 KB Output is correct
67 Correct 46 ms 12020 KB Output is correct
68 Incorrect 48 ms 12020 KB Output isn't correct
69 Correct 58 ms 11980 KB Output is correct
70 Correct 30 ms 12076 KB Output is correct
71 Correct 27 ms 12172 KB Output is correct
72 Correct 41 ms 10796 KB Output is correct
73 Incorrect 30 ms 9760 KB Output isn't correct
74 Correct 32 ms 12608 KB Output is correct
75 Correct 38 ms 12052 KB Output is correct
76 Correct 38 ms 9784 KB Output is correct
77 Incorrect 36 ms 12356 KB Output isn't correct
78 Correct 41 ms 11704 KB Output is correct
79 Incorrect 20 ms 8572 KB Output isn't correct
80 Correct 36 ms 10796 KB Output is correct
81 Incorrect 40 ms 11396 KB Output isn't correct
82 Incorrect 29 ms 9568 KB Output isn't correct
83 Correct 44 ms 12020 KB Output is correct
84 Correct 39 ms 11164 KB Output is correct
85 Correct 41 ms 11368 KB Output is correct
86 Correct 52 ms 10948 KB Output is correct
87 Correct 42 ms 11108 KB Output is correct
88 Incorrect 69 ms 12148 KB Output isn't correct
89 Incorrect 43 ms 12268 KB Output isn't correct
90 Correct 35 ms 11980 KB Output is correct
91 Correct 40 ms 11904 KB Output is correct
92 Correct 31 ms 9952 KB Output is correct
93 Correct 41 ms 12276 KB Output is correct
94 Correct 45 ms 12064 KB Output is correct
95 Correct 46 ms 10840 KB Output is correct
96 Correct 41 ms 11048 KB Output is correct
97 Incorrect 41 ms 12184 KB Output isn't correct
98 Incorrect 29 ms 9804 KB Output isn't correct
99 Correct 43 ms 11936 KB Output is correct
100 Incorrect 42 ms 11944 KB Output isn't correct
101 Correct 36 ms 10644 KB Output is correct
102 Correct 30 ms 11972 KB Output is correct