Submission #789519

# Submission time Handle Problem Language Result Execution time Memory
789519 2023-07-21T13:05:02 Z AdamGS Art Class (IOI13_artclass) C++17
21 / 100
2839 ms 15536 KB
#include "artclass.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define rep(a, b) for(int a = 0; a < (b); ++a)
#define st first
#define nd second
#define pb push_back
#define all(a) a.begin(), a.end()
const int LIM=507;
ll C[LIM][LIM][3], F[LIM*LIM], ile[LIM*LIM], dx[]={1, 0, -1, 0}, dy[]={0, 1, 0, -1}, n, m;
vector<ld>norm(int x, int y) {
	ll ma=1;
	rep(i, 3) ma=max(ma, C[x][y][i]);
	vector<ld>V;
	rep(i, 3) V.pb((ld)C[x][y][i]*(ld)255/(ld)ma);
	return V;
}
bool podobne(int x1, int y1, int x2, int y2) {
	vector<ld>A=norm(x1, y1), B=norm(x2, y2);
	ld sum=0;
	rep(i, 3) sum+=abs(A[i]-B[i]);
	return sum<=50;
}
bool ok(int a, int b) {
	return 0<=a && a<n && 0<=b && b<m;
}
int fnd(int x) {
	if(F[x]==x) return x;
	return F[x]=fnd(F[x]);
}
void uni(int x, int y) {
	if(fnd(x)==fnd(y)) return;
	ile[fnd(x)]+=ile[fnd(y)];
	F[fnd(y)]=fnd(x);
}
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
	n=H; m=W;
	rep(i, n) rep(j, m) {
		C[i][j][0]=R[i][j];
		C[i][j][1]=G[i][j];
		C[i][j][2]=B[i][j];
		ile[i*m+j]=1;
		F[i*m+j]=i*m+j;
	}
	ll sum=0;
	rep(i, n-9) rep(j, m-9) {
		vector<ld>mi=norm(i, j), ma=norm(i, j);
		rep(a, 10) rep(b, 10) {
			vector<ld>P=norm(i+a, j+b);
			rep(c, 3) {
				mi[c]=min(mi[c], P[c]);
				ma[c]=max(ma[c], P[c]);
			}
		}
		int li=0;
		rep(a, 3) li+=ma[a]-mi[a];
		if(li<20) ++sum;
	}
	if((ld)sum/(ld)(n*m)>0.01) {
		sum=0;
		rep(i, n) rep(j, m) if(C[i][j][0]+C[i][j][1]+C[i][j][2]<100) ++sum;
		//rep(i, n) rep(j, m) if(C[i][j][0]>=200 && C[i][j][1]>=200 && C[i][j][2]>=200) ++sum;
		//return sum;
		if((ld)sum/(ld)(n*m)>0.01) return 1;
		return 4;
	}
	sum=0;
	rep(i, n) rep(j, m) rep(l, 4) if(ok(i+dx[l], j+dy[l]) && podobne(i, j, i+dx[l], j+dy[l])) ++sum;
	//return (ld)sum/(ld)(n*m);
	rep(i, n) rep(j, m) if(C[i][j][1]>2*max(C[i][j][0], C[i][j][2])) ++sum;
	if(sum>300) return 2;
	return 3;
}
# Verdict Execution time Memory Grader output
1 Correct 2291 ms 12772 KB Output is correct
2 Incorrect 2134 ms 11712 KB Output isn't correct
3 Incorrect 513 ms 3412 KB Output isn't correct
4 Correct 2673 ms 15132 KB Output is correct
5 Incorrect 1995 ms 11908 KB Output isn't correct
6 Incorrect 2280 ms 14464 KB Output isn't correct
7 Correct 1686 ms 13088 KB Output is correct
8 Incorrect 2148 ms 14156 KB Output isn't correct
9 Correct 2620 ms 15288 KB Output is correct
10 Correct 1901 ms 13536 KB Output is correct
11 Incorrect 2401 ms 14972 KB Output isn't correct
12 Correct 2134 ms 12004 KB Output is correct
13 Incorrect 1399 ms 8120 KB Output isn't correct
14 Correct 2607 ms 15180 KB Output is correct
15 Incorrect 1760 ms 13032 KB Output isn't correct
16 Correct 2577 ms 15228 KB Output is correct
17 Correct 1854 ms 13760 KB Output is correct
18 Incorrect 2065 ms 14076 KB Output isn't correct
19 Correct 1633 ms 12820 KB Output is correct
20 Incorrect 2599 ms 14552 KB Output isn't correct
21 Correct 1414 ms 12028 KB Output is correct
22 Incorrect 1702 ms 9620 KB Output isn't correct
23 Correct 2545 ms 15204 KB Output is correct
24 Correct 2371 ms 13416 KB Output is correct
25 Correct 2571 ms 14472 KB Output is correct
26 Correct 1540 ms 12556 KB Output is correct
27 Incorrect 613 ms 8100 KB Output isn't correct
28 Correct 2174 ms 11764 KB Output is correct
29 Correct 2200 ms 12492 KB Output is correct
30 Correct 2368 ms 13124 KB Output is correct
31 Incorrect 2009 ms 11188 KB Output isn't correct
32 Correct 2406 ms 12456 KB Output is correct
33 Correct 2278 ms 14716 KB Output is correct
34 Correct 2631 ms 15132 KB Output is correct
35 Incorrect 1745 ms 9860 KB Output isn't correct
36 Correct 2238 ms 14796 KB Output is correct
37 Correct 1824 ms 10192 KB Output is correct
38 Correct 1419 ms 8152 KB Output is correct
39 Incorrect 1130 ms 6476 KB Output isn't correct
40 Correct 2282 ms 14272 KB Output is correct
41 Incorrect 2206 ms 14296 KB Output isn't correct
42 Correct 2288 ms 14808 KB Output is correct
43 Correct 2151 ms 14288 KB Output is correct
44 Correct 2301 ms 13744 KB Output is correct
45 Incorrect 1795 ms 10052 KB Output isn't correct
46 Correct 2116 ms 11696 KB Output is correct
47 Incorrect 2125 ms 14276 KB Output isn't correct
48 Incorrect 2195 ms 14452 KB Output isn't correct
49 Correct 2258 ms 12236 KB Output is correct
50 Correct 2191 ms 14648 KB Output is correct
51 Incorrect 2240 ms 12692 KB Output isn't correct
52 Correct 2274 ms 14704 KB Output is correct
53 Correct 1721 ms 13532 KB Output is correct
54 Incorrect 2021 ms 12124 KB Output isn't correct
55 Incorrect 2227 ms 12376 KB Output isn't correct
56 Incorrect 2334 ms 13976 KB Output isn't correct
57 Incorrect 2180 ms 13900 KB Output isn't correct
58 Incorrect 2107 ms 11852 KB Output isn't correct
59 Correct 2742 ms 15536 KB Output is correct
60 Incorrect 2233 ms 14196 KB Output isn't correct
61 Correct 2137 ms 11560 KB Output is correct
62 Incorrect 1820 ms 10560 KB Output isn't correct
63 Incorrect 1718 ms 12712 KB Output isn't correct
64 Correct 2394 ms 13076 KB Output is correct
65 Incorrect 1914 ms 13704 KB Output isn't correct
66 Incorrect 1086 ms 6464 KB Output isn't correct
67 Incorrect 1424 ms 8144 KB Output isn't correct
68 Incorrect 2350 ms 12748 KB Output isn't correct
69 Incorrect 2190 ms 14668 KB Output isn't correct
70 Incorrect 2147 ms 12388 KB Output isn't correct
71 Correct 2479 ms 15336 KB Output is correct
72 Incorrect 1163 ms 6856 KB Output isn't correct
73 Correct 2126 ms 14324 KB Output is correct
74 Correct 2383 ms 14936 KB Output is correct
75 Correct 2160 ms 11876 KB Output is correct
76 Correct 1512 ms 12388 KB Output is correct
77 Incorrect 1979 ms 13872 KB Output isn't correct
78 Correct 2438 ms 14632 KB Output is correct
79 Incorrect 2839 ms 15536 KB Output isn't correct
80 Incorrect 1398 ms 8144 KB Output isn't correct
81 Correct 2113 ms 14512 KB Output is correct
82 Correct 2190 ms 12556 KB Output is correct
83 Correct 1794 ms 13652 KB Output is correct
84 Incorrect 2593 ms 15484 KB Output isn't correct
85 Correct 2612 ms 15396 KB Output is correct
86 Correct 2261 ms 14388 KB Output is correct
87 Correct 2313 ms 12460 KB Output is correct
88 Correct 2602 ms 15428 KB Output is correct
89 Incorrect 2139 ms 14372 KB Output isn't correct
90 Correct 2663 ms 15536 KB Output is correct
91 Incorrect 1649 ms 12464 KB Output isn't correct
92 Correct 2242 ms 12760 KB Output is correct
93 Incorrect 2333 ms 14552 KB Output isn't correct
94 Correct 1425 ms 8756 KB Output is correct
95 Correct 2284 ms 14544 KB Output is correct
96 Incorrect 2345 ms 13344 KB Output isn't correct
97 Correct 1268 ms 11212 KB Output is correct
98 Correct 2099 ms 14400 KB Output is correct
99 Correct 1652 ms 13128 KB Output is correct
100 Incorrect 2222 ms 13400 KB Output isn't correct
101 Incorrect 2137 ms 14408 KB Output isn't correct
102 Incorrect 2151 ms 14352 KB Output isn't correct