Submission #789535

# Submission time Handle Problem Language Result Execution time Memory
789535 2023-07-21T13:18:22 Z AdamGS Art Class (IOI13_artclass) C++17
16 / 100
987 ms 39636 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>Z[LIM][LIM];
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<=100;
}
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;
		Z[i][j]=norm(i, j);
	}
	ll sum=0;
	rep(i, n-9) rep(j, m-9) {
		vector<ld>mi=Z[i][j], ma=Z[i][j];
		rep(a, 10) rep(b, 10) {
			rep(c, 3) {
				mi[c]=min(mi[c], Z[i+a][j+b][c]);
				ma[c]=max(ma[c], Z[i+a][j+b][c]);
			}
		}
		int li=0;
		rep(a, 3) li+=ma[a]-mi[a];
		if(li<20) ++sum;
	}
	if((ld)sum/(ld)((n-9)*(m-9))>0.05) {
		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-9)*(m-9))>0.1) 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 806 ms 39600 KB Output is correct
2 Incorrect 725 ms 30940 KB Output isn't correct
3 Incorrect 842 ms 33476 KB Output isn't correct
4 Incorrect 576 ms 29580 KB Output isn't correct
5 Incorrect 987 ms 39252 KB Output isn't correct
6 Incorrect 740 ms 37916 KB Output isn't correct
7 Incorrect 748 ms 33760 KB Output isn't correct
8 Correct 455 ms 24484 KB Output is correct
9 Correct 798 ms 34168 KB Output is correct
10 Correct 768 ms 32492 KB Output is correct
11 Incorrect 803 ms 35180 KB Output isn't correct
12 Correct 657 ms 34972 KB Output is correct
13 Correct 723 ms 31080 KB Output is correct
14 Correct 711 ms 35372 KB Output is correct
15 Correct 801 ms 33912 KB Output is correct
16 Correct 645 ms 34432 KB Output is correct
17 Correct 709 ms 36520 KB Output is correct
18 Correct 837 ms 39364 KB Output is correct
19 Correct 680 ms 35804 KB Output is correct
20 Incorrect 506 ms 30196 KB Output isn't correct
21 Correct 702 ms 36832 KB Output is correct
22 Incorrect 788 ms 39084 KB Output isn't correct
23 Incorrect 753 ms 33860 KB Output isn't correct
24 Incorrect 810 ms 39636 KB Output isn't correct
25 Correct 547 ms 31564 KB Output is correct
26 Correct 830 ms 34692 KB Output is correct
27 Correct 659 ms 34992 KB Output is correct
28 Incorrect 678 ms 32272 KB Output isn't correct
29 Correct 829 ms 34492 KB Output is correct
30 Incorrect 771 ms 32916 KB Output isn't correct
31 Correct 792 ms 33228 KB Output is correct
32 Incorrect 667 ms 35264 KB Output isn't correct
33 Correct 783 ms 35148 KB Output is correct
34 Correct 669 ms 35036 KB Output is correct
35 Incorrect 613 ms 30412 KB Output isn't correct
36 Correct 812 ms 33616 KB Output is correct
37 Correct 804 ms 39096 KB Output is correct
38 Correct 730 ms 36944 KB Output is correct
39 Incorrect 802 ms 39508 KB Output isn't correct
40 Correct 807 ms 35140 KB Output is correct
41 Correct 782 ms 32972 KB Output is correct
42 Incorrect 623 ms 30196 KB Output isn't correct
43 Incorrect 500 ms 23560 KB Output isn't correct
44 Incorrect 573 ms 29120 KB Output isn't correct
45 Correct 668 ms 31836 KB Output is correct
46 Correct 552 ms 32036 KB Output is correct
47 Correct 771 ms 32700 KB Output is correct
48 Incorrect 706 ms 30620 KB Output isn't correct
49 Incorrect 791 ms 39504 KB Output isn't correct
50 Incorrect 796 ms 39160 KB Output isn't correct
51 Incorrect 751 ms 31948 KB Output isn't correct
52 Correct 798 ms 39372 KB Output is correct
53 Incorrect 185 ms 13340 KB Output isn't correct
54 Correct 724 ms 31256 KB Output is correct
55 Correct 748 ms 32204 KB Output is correct
56 Incorrect 785 ms 39116 KB Output isn't correct
57 Correct 389 ms 26060 KB Output is correct
58 Incorrect 633 ms 28172 KB Output isn't correct
59 Correct 747 ms 31564 KB Output is correct
60 Correct 795 ms 35120 KB Output is correct
61 Incorrect 652 ms 31604 KB Output isn't correct
62 Correct 719 ms 36376 KB Output is correct
63 Incorrect 807 ms 35100 KB Output isn't correct
64 Incorrect 619 ms 33992 KB Output isn't correct
65 Incorrect 951 ms 37508 KB Output isn't correct
66 Correct 675 ms 34884 KB Output is correct
67 Correct 858 ms 34348 KB Output is correct
68 Incorrect 608 ms 26664 KB Output isn't correct
69 Incorrect 652 ms 34636 KB Output isn't correct
70 Correct 785 ms 31860 KB Output is correct
71 Incorrect 831 ms 39468 KB Output isn't correct
72 Correct 489 ms 23568 KB Output is correct
73 Correct 658 ms 35256 KB Output is correct
74 Incorrect 705 ms 35676 KB Output isn't correct
75 Incorrect 482 ms 23380 KB Output isn't correct
76 Correct 620 ms 28228 KB Output is correct
77 Incorrect 612 ms 27608 KB Output isn't correct
78 Correct 762 ms 38128 KB Output is correct
79 Correct 731 ms 31596 KB Output is correct
80 Correct 493 ms 29896 KB Output is correct
81 Correct 744 ms 32080 KB Output is correct
82 Incorrect 745 ms 34380 KB Output isn't correct
83 Incorrect 385 ms 19860 KB Output isn't correct
84 Incorrect 650 ms 34708 KB Output isn't correct
85 Incorrect 581 ms 29444 KB Output isn't correct
86 Incorrect 405 ms 20600 KB Output isn't correct
87 Incorrect 697 ms 31060 KB Output isn't correct
88 Incorrect 779 ms 33112 KB Output isn't correct
89 Incorrect 600 ms 27120 KB Output isn't correct
90 Correct 793 ms 39500 KB Output is correct
91 Correct 767 ms 33000 KB Output is correct
92 Incorrect 817 ms 34204 KB Output isn't correct
93 Correct 531 ms 31308 KB Output is correct
94 Correct 185 ms 18748 KB Output is correct
95 Incorrect 481 ms 23220 KB Output isn't correct
96 Incorrect 447 ms 27840 KB Output isn't correct
97 Correct 463 ms 28872 KB Output is correct
98 Correct 761 ms 38024 KB Output is correct
99 Correct 655 ms 35276 KB Output is correct
100 Correct 643 ms 34516 KB Output is correct
101 Incorrect 381 ms 19976 KB Output isn't correct
102 Correct 786 ms 35232 KB Output is correct