Submission #56068

# Submission time Handle Problem Language Result Execution time Memory
56068 2018-07-09T18:31:16 Z aome Scales (IOI15_scales) C++17
71.4286 / 100
3 ms 592 KB
#include "scales.h"

#include <bits/stdc++.h>

using namespace std;

void init(int T) {
    
}

int p[10];

void orderCoins() {
	memset(p, 0, sizeof p);
 	p[1] = getLightest(1, 2, 3);
 	for (int i = 1; i <= 3; ++i) {
 		if (i == p[1]) continue;
 		if (!p[2]) p[2] = i; else p[3] = i;
 	}
 	p[4] = getLightest(4, 5, 6);
 	p[6] = getHeaviest(4, 5, 6);
 	p[5] = 15 - p[4] - p[6];
 	int v0 = getNextLightest(p[2], p[3], p[5], p[1]);
 	if (v0 == p[3]) swap(p[2], p[3]);
 	if (v0 == p[2]) {
 		int v1 = getMedian(p[1], p[3], p[5]);
 		if (v1 == p[1]) {
 			// 4, 5, 1, 2, 3
 			int v2 = getNextLightest(p[1], p[2], p[3], p[6]);
 			if (v2 == p[1]) {
 				int v3 = getLightest(p[1], p[2], p[6]);
 				if (v3 == p[6]) {
 					int res[] = {p[4], p[5], p[6], p[1], p[2], p[3]}; 
					answer(res); return;
 				}
 				if (v3 == p[1]) {
 					int res[] = {p[4], p[5], p[1], p[2], p[3], p[6]}; 
					answer(res); return;
 				}
 			}
 			if (v2 == p[2]) {
 				int res[] = {p[4], p[5], p[1], p[6], p[2], p[3]}; 
				answer(res); return;
 			}
 			if (v2 == p[3]) {
 				int res[] = {p[4], p[5], p[1], p[2], p[6], p[3]}; 
				answer(res); return;
 			}
 		}
 		if (v1 == p[3]) {
 			// 1, 2, 3, 5, 6
  			int v2 = getNextLightest(p[1], p[2], p[3], p[4]);
 			if (v2 == p[1]) {
 				int v3 = getLightest(p[1], p[2], p[4]);
 				if (v3 == p[4]) {
 					int res[] = {p[4], p[1], p[2], p[3], p[5], p[6]}; 
					answer(res); return;
 				}
 				if (v3 == p[1]) {
 					int res[] = {p[1], p[2], p[3], p[4], p[5], p[6]}; 
					answer(res); return;
 				}
 			}
 			if (v2 == p[2]) {
 				int res[] = {p[1], p[4], p[2], p[3], p[5], p[6]}; 
				answer(res); return;
 			}
 			if (v2 == p[3]) {
 				int res[] = {p[1], p[2], p[4], p[3], p[5], p[6]}; 
				answer(res); return;
 			}
 		}
 		if (v1 == p[5]) {
 			// 1, 2, 5, 3
 			int res[6];
 			int v2 = getMedian(p[1], p[2], p[4]);
 			int v3 = getHeaviest(p[3], p[5], p[6]);
 			if (v2 == p[1]) {
 				res[0] = p[4], res[1] = p[1], res[2] = p[2];
 			}
 			if (v2 == p[2]) {
 				res[0] = p[1], res[1] = p[2], res[2] = p[4];
 			}
 			if (v2 == p[4]) {
 				res[0] = p[1], res[1] = p[4], res[2] = p[2];
 			}
 			res[3] = p[5];
 			if (v3 == p[3]) {
 				res[4] = p[6], res[5] = p[3];
 			}
 			if (v3 == p[6]) {
 				res[4] = p[3], res[5] = p[6];
 			}
 			answer(res); return;
 		}
 	}
 	if (v0 == p[5]) {
 		int v1 = getHeaviest(1, 2, 3);
 		if (v1 == p[2]) swap(p[2], p[3]);
 		// 1, 5, 2, 3
 		int res[6];
		int v2 = getMedian(p[2], p[3], p[6]);
		int v3 = getLightest(p[1], p[4], p[5]);
		if (v2 == p[2]) {
			res[3] = p[6], res[4] = p[2], res[5] = p[3];
		}
		if (v2 == p[3]) {
			res[3] = p[2], res[4] = p[3], res[5] = p[6];
		}
		if (v2 == p[6]) {
			res[3] = p[2], res[4] = p[6], res[5] = p[3];
		}
		res[2] = p[5];
		if (v3 == p[1]) {
			res[0] = p[1], res[1] = p[4];
		}
		if (v3 == p[4]) {
			res[0] = p[4], res[1] = p[1];
		}
		answer(res); return;
 	}
 	assert(0);
}

Compilation message

In file included from grader.c:2:0:
graderlib.c: In function 'void answer(int*)':
graderlib.c:53:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
     if (_ghksjhdfkae19ga_ > 1) 
     ^~
graderlib.c:56:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  for (i = 0; i < 6; i++) {
  ^~~
scales.cpp: In function 'void init(int)':
scales.cpp:7:15: warning: unused parameter 'T' [-Wunused-parameter]
 void init(int T) {
               ^
# Verdict Execution time Memory Grader output
1 Partially correct 2 ms 376 KB Output is partially correct
2 Partially correct 2 ms 492 KB Output is partially correct
3 Partially correct 2 ms 492 KB Output is partially correct
4 Partially correct 2 ms 492 KB Output is partially correct
5 Partially correct 3 ms 592 KB Output is partially correct
6 Partially correct 2 ms 592 KB Output is partially correct
7 Partially correct 2 ms 592 KB Output is partially correct
8 Partially correct 3 ms 592 KB Output is partially correct
9 Partially correct 2 ms 592 KB Output is partially correct
10 Partially correct 3 ms 592 KB Output is partially correct
11 Partially correct 3 ms 592 KB Output is partially correct
12 Partially correct 2 ms 592 KB Output is partially correct
13 Partially correct 3 ms 592 KB Output is partially correct
14 Partially correct 3 ms 592 KB Output is partially correct
15 Partially correct 3 ms 592 KB Output is partially correct
16 Partially correct 3 ms 592 KB Output is partially correct
17 Partially correct 3 ms 592 KB Output is partially correct
18 Partially correct 3 ms 592 KB Output is partially correct
19 Partially correct 3 ms 592 KB Output is partially correct
20 Partially correct 3 ms 592 KB Output is partially correct
21 Partially correct 2 ms 592 KB Output is partially correct
22 Partially correct 2 ms 592 KB Output is partially correct
23 Partially correct 2 ms 592 KB Output is partially correct
24 Partially correct 2 ms 592 KB Output is partially correct
25 Partially correct 3 ms 592 KB Output is partially correct
26 Partially correct 2 ms 592 KB Output is partially correct
27 Partially correct 2 ms 592 KB Output is partially correct
28 Partially correct 2 ms 592 KB Output is partially correct
29 Partially correct 2 ms 592 KB Output is partially correct
30 Partially correct 3 ms 592 KB Output is partially correct
31 Partially correct 3 ms 592 KB Output is partially correct
32 Partially correct 2 ms 592 KB Output is partially correct
33 Partially correct 3 ms 592 KB Output is partially correct
34 Partially correct 2 ms 592 KB Output is partially correct
35 Partially correct 3 ms 592 KB Output is partially correct
36 Partially correct 2 ms 592 KB Output is partially correct
37 Partially correct 2 ms 592 KB Output is partially correct
38 Partially correct 2 ms 592 KB Output is partially correct
39 Partially correct 3 ms 592 KB Output is partially correct
40 Partially correct 2 ms 592 KB Output is partially correct