Submission #765347

# Submission time Handle Problem Language Result Execution time Memory
765347 2023-06-24T11:11:33 Z kekw_orz Art Class (IOI13_artclass) C++14
58 / 100
55 ms 12240 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) / 40;
	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() > -80) 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 Correct 38 ms 10824 KB Output is correct
2 Correct 48 ms 12240 KB Output is correct
3 Correct 38 ms 10676 KB Output is correct
4 Correct 45 ms 11908 KB Output is correct
5 Correct 39 ms 10832 KB Output is correct
6 Correct 31 ms 9792 KB Output is correct
7 Correct 40 ms 11996 KB Output is correct
8 Correct 38 ms 11964 KB Output is correct
9 Incorrect 41 ms 12016 KB Output isn't correct
10 Incorrect 34 ms 12020 KB Output isn't correct
11 Correct 27 ms 9036 KB Output is correct
12 Correct 50 ms 12080 KB Output is correct
13 Correct 45 ms 11924 KB Output is correct
14 Correct 31 ms 9936 KB Output is correct
15 Correct 27 ms 9168 KB Output is correct
16 Correct 40 ms 12000 KB Output is correct
17 Incorrect 12 ms 7292 KB Output isn't correct
18 Incorrect 50 ms 11936 KB Output isn't correct
19 Incorrect 34 ms 11944 KB Output isn't correct
20 Incorrect 26 ms 9172 KB Output isn't correct
21 Incorrect 37 ms 11940 KB Output isn't correct
22 Incorrect 21 ms 8532 KB Output isn't correct
23 Correct 42 ms 12088 KB Output is correct
24 Incorrect 39 ms 10708 KB Output isn't correct
25 Incorrect 47 ms 11972 KB Output isn't correct
26 Correct 40 ms 11328 KB Output is correct
27 Correct 42 ms 11932 KB Output is correct
28 Correct 26 ms 11964 KB Output is correct
29 Correct 39 ms 10988 KB Output is correct
30 Correct 45 ms 10724 KB Output is correct
31 Correct 46 ms 11980 KB Output is correct
32 Correct 38 ms 10872 KB Output is correct
33 Correct 29 ms 11980 KB Output is correct
34 Correct 44 ms 12036 KB Output is correct
35 Incorrect 39 ms 11936 KB Output isn't correct
36 Incorrect 43 ms 11244 KB Output isn't correct
37 Incorrect 15 ms 11724 KB Output isn't correct
38 Correct 40 ms 11052 KB Output is correct
39 Correct 36 ms 11980 KB Output is correct
40 Correct 38 ms 10668 KB Output is correct
41 Incorrect 34 ms 9916 KB Output isn't correct
42 Correct 27 ms 12028 KB Output is correct
43 Correct 37 ms 12208 KB Output is correct
44 Correct 44 ms 11980 KB Output is correct
45 Correct 41 ms 11932 KB Output is correct
46 Correct 41 ms 11956 KB Output is correct
47 Correct 37 ms 10508 KB Output is correct
48 Correct 35 ms 10488 KB Output is correct
49 Correct 22 ms 8588 KB Output is correct
50 Correct 38 ms 10828 KB Output is correct
51 Correct 31 ms 12040 KB Output is correct
52 Correct 40 ms 11344 KB Output is correct
53 Incorrect 29 ms 9724 KB Output isn't correct
54 Correct 42 ms 12088 KB Output is correct
55 Incorrect 38 ms 11084 KB Output isn't correct
56 Correct 29 ms 11936 KB Output is correct
57 Incorrect 38 ms 11936 KB Output isn't correct
58 Correct 39 ms 11996 KB Output is correct
59 Correct 45 ms 12124 KB Output is correct
60 Incorrect 28 ms 9548 KB Output isn't correct
61 Correct 43 ms 11248 KB Output is correct
62 Incorrect 34 ms 12092 KB Output isn't correct
63 Correct 33 ms 11992 KB Output is correct
64 Correct 46 ms 12180 KB Output is correct
65 Correct 39 ms 11920 KB Output is correct
66 Correct 43 ms 12020 KB Output is correct
67 Correct 39 ms 10804 KB Output is correct
68 Incorrect 52 ms 11956 KB Output isn't correct
69 Correct 55 ms 12152 KB Output is correct
70 Incorrect 46 ms 11596 KB Output isn't correct
71 Correct 26 ms 9244 KB Output is correct
72 Correct 40 ms 11980 KB Output is correct
73 Incorrect 31 ms 11936 KB Output isn't correct
74 Correct 38 ms 10832 KB Output is correct
75 Incorrect 38 ms 11964 KB Output isn't correct
76 Incorrect 25 ms 8532 KB Output isn't correct
77 Correct 36 ms 10580 KB Output is correct
78 Correct 37 ms 10332 KB Output is correct
79 Correct 46 ms 10700 KB Output is correct
80 Correct 37 ms 11980 KB Output is correct
81 Correct 34 ms 11904 KB Output is correct
82 Correct 45 ms 11952 KB Output is correct
83 Correct 30 ms 12088 KB Output is correct
84 Correct 44 ms 11980 KB Output is correct
85 Incorrect 39 ms 11088 KB Output isn't correct
86 Correct 44 ms 10452 KB Output is correct
87 Incorrect 40 ms 11916 KB Output isn't correct
88 Correct 40 ms 12152 KB Output is correct
89 Correct 39 ms 10956 KB Output is correct
90 Incorrect 49 ms 11940 KB Output isn't correct
91 Incorrect 50 ms 11984 KB Output isn't correct
92 Incorrect 35 ms 11940 KB Output isn't correct
93 Correct 40 ms 11032 KB Output is correct
94 Correct 51 ms 11020 KB Output is correct
95 Correct 49 ms 11924 KB Output is correct
96 Correct 49 ms 11940 KB Output is correct
97 Correct 34 ms 10140 KB Output is correct
98 Correct 43 ms 11948 KB Output is correct
99 Correct 44 ms 11920 KB Output is correct
100 Correct 47 ms 10992 KB Output is correct
101 Correct 35 ms 12020 KB Output is correct
102 Correct 40 ms 11908 KB Output is correct