답안 #104275

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
104275 2019-04-04T15:40:21 Z arman_ferdous 저울 (IOI15_scales) C++17
45.4545 / 100
4 ms 512 KB
#include "scales.h"
#include <bits/stdc++.h>
using namespace std;

void init(int T) {
    
}

void orderCoins() {
	int W[6] = {1,2,3,4,5,6};

	int a = 1, b = 2, c = 3;
	int lo = getLightest(a,b,c);
	int mid = getMedian(a,b,c), hi;
	if(a != lo && a != mid) hi = a;
	else if(b != lo && b != mid) hi = b;
	else hi = c;
	W[0] = lo, W[1] = mid, W[2] = hi;

	a = 4, b = 5, c = 6;
	lo = getLightest(a,b,c);
	mid = getMedian(a,b,c);
	if(a != lo && a != mid) hi = a;
	else if(b != lo && b != mid) hi = b;
	else hi = c;

	W[3] = lo, W[4] = mid, W[5] = hi;

	vector<int> L(3), R(3), soln;
	for(int i = 0; i < 3; i++) L[i] = W[i];
	for(int i = 0; i < 3; i++) R[i] = W[i+3];

	for(;;) {
		if(L.empty()) {
			while(!R.empty()) {
				soln.push_back(R.back());
				R.pop_back();
			} break;
		}
		if(R.empty()) {
			while(!L.empty()) {
				soln.push_back(L.back());
				L.pop_back();
			} break;
		}

		if(L.size() < 2 && R.size() < 2) {
			int got = getLightest(L[0], R[0], soln.back());
			if(got == L[0]) {
				soln.push_back(R[0]);
				soln.push_back(L[0]);
			} else {
				soln.push_back(L[0]);
				soln.push_back(R[0]);
			} R.pop_back(); L.pop_back();
			break;
		}

		if(L.size() > 1) {
			int got = getHeaviest(L[L.size()-2], L.back(), R.back());
			if(got == L.back()) {
				soln.push_back(L.back());
				L.pop_back();
			} else {
				soln.push_back(R.back());
				R.pop_back();
			}
		}
		else {
			int got = getHeaviest(L.back(), R.back(), R[R.size()-2]);
			if(got == L.back()) {
				soln.push_back(L.back());
				L.pop_back();
			} else {
				soln.push_back(R.back());
				R.pop_back();
			}
		}
	}
	for(int i = 0; i < 6; i++) W[i] = soln[5-i];
	answer(W);
}

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:5:15: warning: unused parameter 'T' [-Wunused-parameter]
 void init(int T) {
               ^
# 결과 실행 시간 메모리 Grader output
1 Partially correct 2 ms 512 KB Output is partially correct
2 Partially correct 2 ms 256 KB Output is partially correct
3 Partially correct 2 ms 256 KB Output is partially correct
4 Partially correct 2 ms 256 KB Output is partially correct
5 Partially correct 3 ms 384 KB Output is partially correct
6 Partially correct 2 ms 256 KB Output is partially correct
7 Partially correct 3 ms 384 KB Output is partially correct
8 Partially correct 2 ms 256 KB Output is partially correct
9 Partially correct 2 ms 384 KB Output is partially correct
10 Partially correct 3 ms 384 KB Output is partially correct
11 Partially correct 2 ms 384 KB Output is partially correct
12 Partially correct 2 ms 256 KB Output is partially correct
13 Partially correct 3 ms 384 KB Output is partially correct
14 Partially correct 3 ms 384 KB Output is partially correct
15 Partially correct 3 ms 256 KB Output is partially correct
16 Partially correct 3 ms 384 KB Output is partially correct
17 Partially correct 3 ms 256 KB Output is partially correct
18 Partially correct 4 ms 384 KB Output is partially correct
19 Partially correct 2 ms 384 KB Output is partially correct
20 Partially correct 3 ms 384 KB Output is partially correct
21 Partially correct 3 ms 368 KB Output is partially correct
22 Partially correct 3 ms 384 KB Output is partially correct
23 Partially correct 3 ms 384 KB Output is partially correct
24 Partially correct 2 ms 364 KB Output is partially correct
25 Partially correct 3 ms 256 KB Output is partially correct
26 Partially correct 2 ms 384 KB Output is partially correct
27 Partially correct 2 ms 256 KB Output is partially correct
28 Partially correct 2 ms 256 KB Output is partially correct
29 Partially correct 3 ms 256 KB Output is partially correct
30 Partially correct 2 ms 256 KB Output is partially correct
31 Partially correct 2 ms 400 KB Output is partially correct
32 Partially correct 2 ms 384 KB Output is partially correct
33 Partially correct 2 ms 256 KB Output is partially correct
34 Partially correct 2 ms 384 KB Output is partially correct
35 Partially correct 3 ms 256 KB Output is partially correct
36 Partially correct 3 ms 384 KB Output is partially correct
37 Partially correct 3 ms 384 KB Output is partially correct
38 Partially correct 2 ms 384 KB Output is partially correct
39 Partially correct 2 ms 256 KB Output is partially correct
40 Partially correct 3 ms 384 KB Output is partially correct