Submission #299018

#TimeUsernameProblemLanguageResultExecution timeMemory
299018BlancaHMScales (IOI15_scales)C++14
Compilation error
0 ms0 KiB
void init(int T) {
	return;
}

void orderCoins() {
	int W[6];
	int heavy1 = getHeaviest(1, 2, 3);
	int heavy2 = getHeaviest(4, 5, 6);
	int light1 = getLightest(1, 2, 3);
	int light2 = getLightest(4, 5, 6);
	int median1 = 6 - (heavy1+light1);
	int median2 = 15 - (heavy2+light2);
	int q1 = getMedian(heavy1, heavy2, median1);
	if (q1 == heavy1) {
		W[0] = heavy2;
		// heavy2 > heavy1 > median1 > light1
		int q2 = getMedian(median1, median2, heavy1);
		int q3 = getLightest(light1, light2, median1);
		if (q2 == median1) {
			// heavy2 > heavy1 > median1 > median2
			W[1] = heavy1;
			W[2] = median1;
			W[3] = median2;
		} else if (q2 == heavy1) {
			// heavy2 > median2 > heavy1 > median1
			W[1] = median2;
			W[2] = heavy1;
			W[3] = median1;
		} else {
			// heavy2 > heavy1 > median2 > median1
			W[1] = heavy1;
			W[2] = median2;
			W[3] = median1;
		}
		if (q3 == light1) {
			W[4] = light2;
			W[5] = light1;
		} else {
			W[4] = light1;
			W[5] = light2;
		}
	} else if (q1 == heavy2) {
		W[0] = heavy1;
		W[1] = heavy2;
		// heavy1 > heavy2 > median1 > light1
		int q2 = getMedian(median1, median2, light1);
		if (q2 == median1) {
			// heavy1 > heavy2 > median2 > median1 > light1
			W[2] = median2;
			W[3] = median1;
			// find lightest of light1 and light2
			int q3 = getLightest(light1, light2, median1);
			if (q3 == light1) {
				W[4] = light2;
				W[5] = light1;
			} else {
				W[4] = light1;
				W[5] = light2;
			}
		} else if (q2 == light1) {
			// heavy1 > heavy2 > median1 > light1 > median2 > light2
			W[2] = median1;
			W[3] = light1;
			W[4] = median2;
			W[5] = light2;
		} else {
			W[2] = median1;
			W[3] = median2;
			// find lightest of light1/2
			int q3 = getLightest(light1, light2, median1);
			if (q3 == light1) {
				W[4] = light2;
				W[5] = light1;
			} else {
				W[4] = light1;
				W[5] = light2;
			}
		}
	} else {
		// heavy1 > median1 > heavy2 > median2 > light2
		W[0] = heavy1;
		W[1] = median1;
		int q2 = getNextLightest(heavy2, median2, light2, light1);
		if (q2 == median2) {
			W[2] = heavy2;
			W[3] = median2;
			W[4] = light1;
			W[5] = light2;
		} else if (q2 == heavy2) {
			W[2] = heavy2;
			W[3] = light1;
			W[4] = median2;
			W[5] = light2;
		} else {
			// either > H2 or < L2
			int q3 = getMedian(heavy2, light2, light1);
			if (q3 == heavy2) {
				W[2] = light1;
				W[3] = heavy2;
				W[4] = median2;
				W[5] = light2;
			} else {
				W[2] = heavy2;
				W[3] = median2;
				W[4] = light2;
				W[5] = light1;
			}
		}
	}
	answer(W);
}

Compilation message (stderr)

scales.cpp: In function 'void init(int)':
scales.cpp:1:15: warning: unused parameter 'T' [-Wunused-parameter]
    1 | void init(int T) {
      |           ~~~~^
scales.cpp: In function 'void orderCoins()':
scales.cpp:7:15: error: 'getHeaviest' was not declared in this scope
    7 |  int heavy1 = getHeaviest(1, 2, 3);
      |               ^~~~~~~~~~~
scales.cpp:9:15: error: 'getLightest' was not declared in this scope
    9 |  int light1 = getLightest(1, 2, 3);
      |               ^~~~~~~~~~~
scales.cpp:13:11: error: 'getMedian' was not declared in this scope
   13 |  int q1 = getMedian(heavy1, heavy2, median1);
      |           ^~~~~~~~~
scales.cpp:83:12: error: 'getNextLightest' was not declared in this scope
   83 |   int q2 = getNextLightest(heavy2, median2, light2, light1);
      |            ^~~~~~~~~~~~~~~
scales.cpp:110:2: error: 'answer' was not declared in this scope
  110 |  answer(W);
      |  ^~~~~~