Submission #765354

# Submission time Handle Problem Language Result Execution time Memory
765354 2023-06-24T11:24:45 Z kekw_orz Art Class (IOI13_artclass) C++14
49 / 100
56 ms 12124 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 = 300;

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.5;

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, ts = 0;
	for (int i = 0; i < n; i++)
		for (int j = 0; j < m; j++)
			s = s + A[i][j][1], ts = ts + A[i][j][0] + A[i][j][1] + A[i][j][2];

	s /= ts;
	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) / 10;
	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;	
	cerr << vert_khat() << sep << horz_khat() << endl;
	if (max(vert_khat(), horz_khat()) > 2 && min(vert_khat(), horz_khat()) < 2) return 4;
	if (green_sum() > 0.32 && wow() > 5) return 2;
	if (wow() < 20) return 3;
	return 4;
}
# Verdict Execution time Memory Grader output
1 Correct 12 ms 7252 KB Output is correct
2 Incorrect 46 ms 11972 KB Output isn't correct
3 Correct 39 ms 10828 KB Output is correct
4 Incorrect 41 ms 11012 KB Output isn't correct
5 Correct 27 ms 9304 KB Output is correct
6 Incorrect 41 ms 11904 KB Output isn't correct
7 Incorrect 49 ms 11960 KB Output isn't correct
8 Correct 43 ms 11984 KB Output is correct
9 Correct 39 ms 10756 KB Output is correct
10 Correct 44 ms 12008 KB Output is correct
11 Incorrect 44 ms 10884 KB Output isn't correct
12 Correct 36 ms 11996 KB Output is correct
13 Correct 46 ms 11224 KB Output is correct
14 Correct 44 ms 12020 KB Output is correct
15 Incorrect 27 ms 9112 KB Output isn't correct
16 Correct 54 ms 12016 KB Output is correct
17 Incorrect 31 ms 11968 KB Output isn't correct
18 Correct 38 ms 10444 KB Output is correct
19 Correct 42 ms 11120 KB Output is correct
20 Correct 35 ms 12108 KB Output is correct
21 Incorrect 49 ms 11940 KB Output isn't correct
22 Incorrect 47 ms 11960 KB Output isn't correct
23 Correct 40 ms 11916 KB Output is correct
24 Incorrect 44 ms 9992 KB Output isn't correct
25 Incorrect 51 ms 12020 KB Output isn't correct
26 Incorrect 33 ms 9932 KB Output isn't correct
27 Incorrect 44 ms 11996 KB Output isn't correct
28 Correct 39 ms 12012 KB Output is correct
29 Incorrect 42 ms 11980 KB Output isn't correct
30 Correct 33 ms 11936 KB Output is correct
31 Incorrect 50 ms 11908 KB Output isn't correct
32 Incorrect 42 ms 11144 KB Output isn't correct
33 Correct 37 ms 11920 KB Output is correct
34 Correct 40 ms 11988 KB Output is correct
35 Correct 41 ms 10572 KB Output is correct
36 Correct 39 ms 10568 KB Output is correct
37 Correct 45 ms 11000 KB Output is correct
38 Correct 40 ms 11924 KB Output is correct
39 Correct 37 ms 11948 KB Output is correct
40 Correct 34 ms 11980 KB Output is correct
41 Incorrect 42 ms 11908 KB Output isn't correct
42 Correct 42 ms 12008 KB Output is correct
43 Correct 42 ms 11960 KB Output is correct
44 Incorrect 35 ms 10712 KB Output isn't correct
45 Correct 38 ms 9968 KB Output is correct
46 Correct 27 ms 9104 KB Output is correct
47 Correct 41 ms 11068 KB Output is correct
48 Incorrect 31 ms 11948 KB Output isn't correct
49 Correct 42 ms 12000 KB Output is correct
50 Correct 45 ms 11892 KB Output is correct
51 Incorrect 49 ms 11880 KB Output isn't correct
52 Incorrect 50 ms 11984 KB Output isn't correct
53 Incorrect 44 ms 11932 KB Output isn't correct
54 Incorrect 39 ms 10628 KB Output isn't correct
55 Correct 43 ms 12060 KB Output is correct
56 Correct 26 ms 11940 KB Output is correct
57 Correct 36 ms 11980 KB Output is correct
58 Incorrect 43 ms 11128 KB Output isn't correct
59 Incorrect 34 ms 9616 KB Output isn't correct
60 Correct 39 ms 10556 KB Output is correct
61 Incorrect 38 ms 11948 KB Output isn't correct
62 Correct 45 ms 11944 KB Output is correct
63 Correct 41 ms 11992 KB Output is correct
64 Correct 44 ms 12008 KB Output is correct
65 Correct 39 ms 10840 KB Output is correct
66 Correct 49 ms 10740 KB Output is correct
67 Correct 45 ms 11596 KB Output is correct
68 Correct 40 ms 10956 KB Output is correct
69 Correct 42 ms 12044 KB Output is correct
70 Correct 39 ms 11312 KB Output is correct
71 Correct 26 ms 9108 KB Output is correct
72 Correct 36 ms 12048 KB Output is correct
73 Incorrect 39 ms 10608 KB Output isn't correct
74 Incorrect 26 ms 12020 KB Output isn't correct
75 Correct 45 ms 11920 KB Output is correct
76 Incorrect 43 ms 11928 KB Output isn't correct
77 Correct 37 ms 10624 KB Output is correct
78 Correct 23 ms 8428 KB Output is correct
79 Incorrect 30 ms 9276 KB Output isn't correct
80 Correct 32 ms 11988 KB Output is correct
81 Incorrect 49 ms 12016 KB Output isn't correct
82 Correct 48 ms 12020 KB Output is correct
83 Correct 30 ms 11960 KB Output is correct
84 Correct 35 ms 11972 KB Output is correct
85 Incorrect 22 ms 8512 KB Output isn't correct
86 Correct 41 ms 12000 KB Output is correct
87 Correct 40 ms 10868 KB Output is correct
88 Correct 38 ms 10376 KB Output is correct
89 Correct 40 ms 10932 KB Output is correct
90 Incorrect 15 ms 11768 KB Output isn't correct
91 Correct 24 ms 8640 KB Output is correct
92 Correct 41 ms 10964 KB Output is correct
93 Correct 40 ms 11980 KB Output is correct
94 Correct 41 ms 11904 KB Output is correct
95 Correct 38 ms 11904 KB Output is correct
96 Correct 43 ms 11912 KB Output is correct
97 Correct 41 ms 11016 KB Output is correct
98 Correct 42 ms 12044 KB Output is correct
99 Correct 56 ms 12124 KB Output is correct
100 Correct 33 ms 9704 KB Output is correct
101 Correct 37 ms 10460 KB Output is correct
102 Correct 34 ms 11920 KB Output is correct