Submission #1815

# Submission time Handle Problem Language Result Execution time Memory
1815 2013-07-16T16:55:51 Z ainta Art Class (IOI13_artclass) C++
5 / 100
155 ms 8600 KB
#include "artclass.h"

int abs(int a){
	return a<0?-a:a;
}
int P[501][501],C,Q[250001],h,t,HH,WW,Count[250001];
int Ca[501],Cb[501],Cc[1001],Cd[1001];
struct A{
	int r,g,b;
}w[501][501];
struct B{
	int r,g,b;
}o[250001];
void Ins(int x,int y){
	P[x][y]=C,Q[++t]=WW*x+y;
}
int pow2(int a){
	return a*a;
}
void Do(int x,int y){
	if(x<0||y<0||x>=HH||y>=WW||P[x][y])return;
	if(pow2(abs(w[x][y].r-o[C].r))+pow2(abs(w[x][y].g-o[C].g))+pow2(abs(w[x][y].b-o[C].b))>1000)return;
	return Ins(x,y);
}
void BFS(int x,int y){
	o[C].r=w[x][y].r,o[C].g=w[x][y].g,o[C].b=w[x][y].b;
	h=t=0;
	Ins(x,y);
	while(h<t){
		Count[C]++;
		++h;
		x=Q[h]/WW,y=Q[h]%WW;
		Do(x-1,y);
		Do(x+1,y);
		Do(x,y-1);
		Do(x,y+1);
	}
}
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
	HH=H,WW=W;
	int i,j,GG=0,BB=0,RR=0;
	for(i=0;i<H;i++)
		for(j=0;j<W;j++)
			w[i][j].r=R[i][j],w[i][j].g=G[i][j],w[i][j].b=B[i][j],GG+=G[i][j],BB+=B[i][j],RR+=R[i][j];
	for(i=0;i<H;i++){
		for(j=0;j<W;j++){
			if(!P[i][j]){
				C++;
				BFS(i,j);
			}
		}
	}
	int Sa=0,Sb=0,Sc=0,Sd=0;
	for(i=0;i<H;i++){
		for(j=0;j<W;j++){
			if(j<W-1 && P[i][j]!=P[i][j+1])Ca[j]++,Sa++;
			if(i<H-1 && P[i][j]!=P[i+1][j])Cb[i]++,Sb++;
			if(i<H-1 && j<H-1 && P[i][j]!=P[i+1][j+1])Cc[i+j]++,Sc++;
			if(i<H-1 && j && P[i][j]!=P[i+1][j-1])Cd[i-j+W]++,Sd++;
		}
	}
	Sa/=W,Sb/=H;
	int C1=0,C2=0,C3=0,C4=0,C5=0,C6=0;
	for(i=0;i<W-1;i++){
		if(Ca[i]-Sa>=H/3){
			C1++;
			if(i>=W/7 && i<= 6*W/7) C5++;
		}
	}
	for(i=0;i<H-1;i++){
		if(Cb[i]-Sb>=W/3){
			C2++;
			if(i>=H/7 && i<= 6*H/7) C6++;
		}
	}
	for(i=0;i<H-1;i++){
	}
	if(C1>1 || C2>1){
		if(C5==0 || C6==0)return 4;
		return 1;
	}
	/*if(Sa<W*5/9 && Sb<H*5/9)return 2;
	return 3;*/
}

Compilation message

artclass.cpp: In function 'int style(int, int, int (*)[500], int (*)[500], int (*)[500])':
artclass.cpp:63:16: warning: unused variable 'C3' [-Wunused-variable]
  int C1=0,C2=0,C3=0,C4=0,C5=0,C6=0;
                ^~
artclass.cpp:63:21: warning: unused variable 'C4' [-Wunused-variable]
  int C1=0,C2=0,C3=0,C4=0,C5=0,C6=0;
                     ^~
artclass.cpp:84:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
# Verdict Execution time Memory Grader output
1 Incorrect 111 ms 8172 KB Output isn't correct
2 Correct 54 ms 8600 KB Output is correct
3 Incorrect 91 ms 8172 KB Output isn't correct
4 Incorrect 73 ms 7932 KB Output isn't correct
5 Incorrect 81 ms 7932 KB Output isn't correct
6 Correct 103 ms 7932 KB Output is correct
7 Incorrect 95 ms 8172 KB Output isn't correct
8 Correct 40 ms 8600 KB Output is correct
9 Correct 92 ms 8600 KB Output is correct
10 Incorrect 92 ms 7932 KB Output isn't correct
11 Incorrect 82 ms 8172 KB Output isn't correct
12 Incorrect 110 ms 7932 KB Output isn't correct
13 Incorrect 83 ms 8172 KB Output isn't correct
14 Correct 103 ms 7932 KB Output is correct
15 Incorrect 83 ms 7932 KB Output isn't correct
16 Correct 79 ms 8600 KB Output is correct
17 Correct 143 ms 7524 KB Output is correct
18 Correct 110 ms 8600 KB Output is correct
19 Incorrect 78 ms 8172 KB Output isn't correct
20 Correct 68 ms 7932 KB Output is correct
21 Incorrect 60 ms 8316 KB Output isn't correct
22 Correct 91 ms 8600 KB Output is correct
23 Incorrect 90 ms 8172 KB Output isn't correct
24 Incorrect 78 ms 8600 KB Output isn't correct
25 Incorrect 51 ms 8600 KB Output isn't correct
26 Incorrect 81 ms 8600 KB Output isn't correct
27 Incorrect 76 ms 8172 KB Output isn't correct
28 Incorrect 60 ms 8316 KB Output isn't correct
29 Incorrect 71 ms 8600 KB Output isn't correct
30 Correct 68 ms 8600 KB Output is correct
31 Incorrect 84 ms 8172 KB Output isn't correct
32 Incorrect 71 ms 8600 KB Output isn't correct
33 Correct 112 ms 8600 KB Output is correct
34 Correct 99 ms 7932 KB Output is correct
35 Incorrect 82 ms 8600 KB Output isn't correct
36 Correct 155 ms 7684 KB Output is correct
37 Correct 82 ms 8600 KB Output is correct
38 Incorrect 91 ms 8172 KB Output isn't correct
39 Incorrect 78 ms 8600 KB Output isn't correct
40 Correct 72 ms 8600 KB Output is correct
41 Incorrect 98 ms 8172 KB Output isn't correct
42 Incorrect 71 ms 8600 KB Output isn't correct
43 Correct 90 ms 8600 KB Output is correct
44 Incorrect 52 ms 4216 KB Output isn't correct
45 Correct 102 ms 7684 KB Output is correct
46 Correct 113 ms 7932 KB Output is correct
47 Incorrect 56 ms 8172 KB Output isn't correct
48 Incorrect 97 ms 8172 KB Output isn't correct
49 Incorrect 105 ms 8172 KB Output isn't correct
50 Incorrect 116 ms 8172 KB Output isn't correct
51 Correct 94 ms 8600 KB Output is correct
52 Correct 92 ms 7524 KB Output is correct
53 Incorrect 111 ms 8172 KB Output isn't correct
54 Correct 94 ms 8600 KB Output is correct
55 Incorrect 73 ms 8600 KB Output isn't correct
56 Incorrect 87 ms 8600 KB Output isn't correct
57 Incorrect 79 ms 8600 KB Output isn't correct
58 Incorrect 83 ms 8600 KB Output isn't correct
59 Correct 100 ms 7932 KB Output is correct
60 Incorrect 83 ms 8600 KB Output isn't correct
61 Correct 68 ms 8600 KB Output is correct
62 Correct 123 ms 7932 KB Output is correct
63 Incorrect 131 ms 8600 KB Output isn't correct
64 Incorrect 86 ms 8172 KB Output isn't correct
65 Incorrect 79 ms 8600 KB Output isn't correct
66 Incorrect 41 ms 8600 KB Output isn't correct
67 Incorrect 108 ms 8172 KB Output isn't correct
68 Incorrect 72 ms 8600 KB Output isn't correct
69 Incorrect 67 ms 8316 KB Output isn't correct
70 Incorrect 81 ms 8172 KB Output isn't correct
71 Correct 111 ms 8600 KB Output is correct
72 Incorrect 96 ms 8172 KB Output isn't correct
73 Incorrect 138 ms 8600 KB Output isn't correct
74 Correct 91 ms 8600 KB Output is correct
75 Incorrect 78 ms 8172 KB Output isn't correct
76 Correct 128 ms 7932 KB Output is correct
77 Incorrect 91 ms 8316 KB Output isn't correct
78 Incorrect 82 ms 8600 KB Output isn't correct
79 Incorrect 30 ms 8600 KB Output isn't correct
80 Correct 89 ms 8600 KB Output is correct
81 Incorrect 84 ms 8172 KB Output isn't correct
82 Correct 74 ms 7396 KB Output is correct
83 Incorrect 67 ms 8380 KB Output isn't correct
84 Correct 94 ms 7772 KB Output is correct
85 Incorrect 105 ms 7932 KB Output isn't correct
86 Incorrect 90 ms 8600 KB Output isn't correct
87 Incorrect 76 ms 8172 KB Output isn't correct
88 Incorrect 82 ms 8600 KB Output isn't correct
89 Correct 60 ms 7396 KB Output is correct
90 Correct 90 ms 7932 KB Output is correct
91 Incorrect 128 ms 7932 KB Output isn't correct
92 Correct 74 ms 8600 KB Output is correct
93 Incorrect 95 ms 8600 KB Output isn't correct
94 Incorrect 76 ms 8600 KB Output isn't correct
95 Incorrect 104 ms 8600 KB Output isn't correct
96 Correct 93 ms 7396 KB Output is correct
97 Correct 67 ms 8600 KB Output is correct
98 Correct 92 ms 7932 KB Output is correct
99 Incorrect 132 ms 8600 KB Output isn't correct
100 Correct 105 ms 7932 KB Output is correct
101 Correct 107 ms 8600 KB Output is correct
102 Incorrect 75 ms 8600 KB Output isn't correct