Submission #401637

# Submission time Handle Problem Language Result Execution time Memory
401637 2021-05-10T15:32:21 Z rqi Art Class (IOI13_artclass) C++14
0 / 100
112 ms 12872 KB
#include "artclass.h"
#include <bits/stdc++.h>
using namespace std;
 
typedef long double db;
 
#define mp make_pair
#define f first
#define s second
#define pb push_back
 
int dx[8] = {1, 1, 0, -1, -1, -1, 0, 1};
int dy[8] = {0, 1, 1, 1, 0, -1, -1, -1};
 
int H;
int W;
int col[500][500][3];
 
db avg_diff[500][500];
db avg_pix[3];
 
db getContrast(){
	db avg_tot = 0;
	int avg_num = 0;
	for(int i = 1; i+1 < H; i++){
		for(int j = 1; j+1 < W; j++){
			db tot_diff = 0;
			for(int dir = 0; dir < 8; dir++){
				for(int k = 0; k < 3; k++){
					tot_diff+=abs(col[i][j][k]-col[i+dx[dir]][j+dy[dir]][k]);
				}
			}
			avg_diff[i][j] = tot_diff/db(8*3);
			avg_tot+=avg_diff[i][j];
			avg_num++;
		}
	}
 
	return avg_tot/avg_num;
}

void getAvgPix(){
	db tot = 0;
	for(int i = 0; i < H; i++){
		for(int j = 0; j < W; j++){
			for(int k = 0; k < 3; k++){
				avg_pix[k]+=col[i][j][k];
			}
			tot+=1;
		}
	}
	for(int k = 0; k < 3; k++){
		avg_pix[k]/=tot;
	}
}
 
pair<db, db> contrast_rang[4] = {mp(3.19, 11.8), mp(8.8, 20.3), mp(21.3, 42.9), mp(1.43, 3.3)};
db score[4];
pair<db, db> bright_rang[4] = {mp(126.7, 202), mp(68.6, 111.0), mp(100.9, 191.6), mp(48.3,161.9)};
 
db getPropOff(pair<db, db> a, db b){
	db a_mid = (a.f+a.s)/2;
	db a_diff = (a.s-a_mid);
	return abs(b-a_mid)/a_diff;
}
 
int style(int _H, int _W, int _R[500][500], int _G[500][500], int _B[500][500]) {
	cout << fixed << setprecision(1);
	H = _H;
	W = _W;
	for(int i = 0; i < H; i++){
		for(int j = 0; j < W; j++){
			col[i][j][0] = _R[i][j];
			col[i][j][1] = _G[i][j];
			col[i][j][2] = _B[i][j];
		}
	}
	db contrast = getContrast();
	cout << contrast << "\n";
	getAvgPix();
 	cout << avg_pix[0] << " " << avg_pix[1] << " " << avg_pix[2] << "\n";

 	db bright = (avg_pix[0]+avg_pix[1]+avg_pix[2])/3;

 	cout << bright << "\n";
	for(int i = 0; i < 4; i++){
		score[i] = getPropOff(contrast_rang[i], contrast)+getPropOff(bright_rang[i], bright);
	}
 
	vector<pair<db, int>> sorted_scores;
	for(int i = 0; i < 4; i++){
		sorted_scores.pb(mp(score[i], i));
	}
	sort(sorted_scores.begin(), sorted_scores.end());

	for(int i = 0; i < 4; i++){
		cout << sorted_scores[i].f << " " << sorted_scores[i].s+1 << "\n";
	}
 
	return sorted_scores[0].s+1;
}
# Verdict Execution time Memory Grader output
1 Incorrect 72 ms 10688 KB Output isn't correct
2 Incorrect 86 ms 10796 KB Output isn't correct
3 Incorrect 67 ms 11716 KB Output isn't correct
4 Incorrect 27 ms 9316 KB Output isn't correct
5 Incorrect 65 ms 7924 KB Output isn't correct
6 Incorrect 45 ms 10648 KB Output isn't correct
7 Incorrect 92 ms 10600 KB Output isn't correct
8 Incorrect 78 ms 10780 KB Output isn't correct
9 Incorrect 76 ms 10696 KB Output isn't correct
10 Incorrect 74 ms 8272 KB Output isn't correct
11 Incorrect 74 ms 9812 KB Output isn't correct
12 Incorrect 37 ms 5188 KB Output isn't correct
13 Incorrect 74 ms 10908 KB Output isn't correct
14 Incorrect 67 ms 8516 KB Output isn't correct
15 Incorrect 63 ms 11624 KB Output isn't correct
16 Incorrect 72 ms 10712 KB Output isn't correct
17 Incorrect 88 ms 10776 KB Output isn't correct
18 Incorrect 65 ms 10852 KB Output isn't correct
19 Incorrect 67 ms 9404 KB Output isn't correct
20 Incorrect 80 ms 9840 KB Output isn't correct
21 Incorrect 112 ms 10692 KB Output isn't correct
22 Incorrect 18 ms 2764 KB Output isn't correct
23 Incorrect 55 ms 6844 KB Output isn't correct
24 Incorrect 71 ms 8900 KB Output isn't correct
25 Incorrect 71 ms 10764 KB Output isn't correct
26 Incorrect 57 ms 6588 KB Output isn't correct
27 Incorrect 69 ms 10788 KB Output isn't correct
28 Incorrect 69 ms 9304 KB Output isn't correct
29 Incorrect 107 ms 10920 KB Output isn't correct
30 Incorrect 72 ms 11844 KB Output isn't correct
31 Incorrect 85 ms 12200 KB Output isn't correct
32 Incorrect 95 ms 12740 KB Output isn't correct
33 Incorrect 74 ms 10692 KB Output isn't correct
34 Incorrect 49 ms 6032 KB Output isn't correct
35 Incorrect 63 ms 11716 KB Output isn't correct
36 Incorrect 50 ms 6504 KB Output isn't correct
37 Incorrect 94 ms 10332 KB Output isn't correct
38 Incorrect 67 ms 8380 KB Output isn't correct
39 Incorrect 68 ms 10760 KB Output isn't correct
40 Incorrect 76 ms 10920 KB Output isn't correct
41 Incorrect 63 ms 11624 KB Output isn't correct
42 Incorrect 62 ms 11252 KB Output isn't correct
43 Incorrect 71 ms 11908 KB Output isn't correct
44 Incorrect 86 ms 12420 KB Output isn't correct
45 Incorrect 83 ms 10692 KB Output isn't correct
46 Incorrect 51 ms 10752 KB Output isn't correct
47 Incorrect 73 ms 9432 KB Output isn't correct
48 Incorrect 76 ms 9952 KB Output isn't correct
49 Incorrect 39 ms 5136 KB Output isn't correct
50 Incorrect 57 ms 10752 KB Output isn't correct
51 Incorrect 94 ms 11204 KB Output isn't correct
52 Incorrect 87 ms 12696 KB Output isn't correct
53 Incorrect 70 ms 10120 KB Output isn't correct
54 Incorrect 94 ms 9668 KB Output isn't correct
55 Incorrect 59 ms 7648 KB Output isn't correct
56 Incorrect 72 ms 10800 KB Output isn't correct
57 Incorrect 74 ms 10720 KB Output isn't correct
58 Incorrect 69 ms 9460 KB Output isn't correct
59 Incorrect 109 ms 12732 KB Output isn't correct
60 Incorrect 90 ms 12068 KB Output isn't correct
61 Incorrect 105 ms 10684 KB Output isn't correct
62 Incorrect 87 ms 11360 KB Output isn't correct
63 Incorrect 60 ms 10884 KB Output isn't correct
64 Incorrect 69 ms 10676 KB Output isn't correct
65 Incorrect 49 ms 6536 KB Output isn't correct
66 Incorrect 62 ms 10692 KB Output isn't correct
67 Incorrect 87 ms 9328 KB Output isn't correct
68 Incorrect 80 ms 9904 KB Output isn't correct
69 Incorrect 85 ms 9648 KB Output isn't correct
70 Incorrect 95 ms 11116 KB Output isn't correct
71 Incorrect 77 ms 10796 KB Output isn't correct
72 Incorrect 48 ms 4932 KB Output isn't correct
73 Incorrect 51 ms 11456 KB Output isn't correct
74 Incorrect 87 ms 10736 KB Output isn't correct
75 Incorrect 78 ms 10680 KB Output isn't correct
76 Incorrect 60 ms 10892 KB Output isn't correct
77 Incorrect 50 ms 5956 KB Output isn't correct
78 Incorrect 92 ms 12728 KB Output isn't correct
79 Incorrect 70 ms 9412 KB Output isn't correct
80 Incorrect 76 ms 12108 KB Output isn't correct
81 Incorrect 83 ms 12036 KB Output isn't correct
82 Incorrect 85 ms 12100 KB Output isn't correct
83 Incorrect 72 ms 12020 KB Output isn't correct
84 Incorrect 75 ms 9852 KB Output isn't correct
85 Incorrect 92 ms 12392 KB Output isn't correct
86 Incorrect 105 ms 10708 KB Output isn't correct
87 Incorrect 104 ms 12080 KB Output isn't correct
88 Incorrect 78 ms 10732 KB Output isn't correct
89 Incorrect 74 ms 8228 KB Output isn't correct
90 Incorrect 85 ms 11192 KB Output isn't correct
91 Incorrect 69 ms 11804 KB Output isn't correct
92 Incorrect 108 ms 12872 KB Output isn't correct
93 Incorrect 63 ms 7376 KB Output isn't correct
94 Incorrect 68 ms 9556 KB Output isn't correct
95 Incorrect 70 ms 10188 KB Output isn't correct
96 Incorrect 75 ms 10384 KB Output isn't correct
97 Incorrect 90 ms 12808 KB Output isn't correct
98 Incorrect 87 ms 10160 KB Output isn't correct
99 Incorrect 72 ms 12144 KB Output isn't correct
100 Incorrect 58 ms 11424 KB Output isn't correct
101 Incorrect 106 ms 10700 KB Output isn't correct
102 Incorrect 77 ms 9168 KB Output isn't correct